好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php上传图片解码 php图片上传代码详解

很多站长朋友们都不太清楚php上传图片解码,今天小编就来给大家整理php上传图片解码,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php中上传图片文件时提示不存在的图像文件 2、 CKFinder(php版)上传图片报错,总是显示500的错误,请问该怎么解决这个问题呢? 3、 关于thinkphp图片上传问题 4、 PHP怎样上传图片以及预览图片? 5、 php 图片流 转为base64 6、 php表单上传图片到七牛云存储并返回地址……求具体流程~有代码更好 php中上传图片文件时提示不存在的图像文件

Gd.class.php第42行报错,应该是在这里使用的图片地址用错了,使用$_Files里的tmp_name才是真实路径,注意$_Files可能是个多维数组,另外如果确定路径没错,去这个路径看看图片是否正确上传上来,如果图片真的不存在,就是上传有问题

php上传原理,是把文件先保存在一个临时目录,比如C:/tmp(这个路径可以在php的配置文件里配),然后需要你手动把临时文件转移到你的目标文件,比如D:/uploads,如果不做这一步,页面关闭后,临时文件会被删除。

CKFinder(php版)上传图片报错,总是显示500的错误,请问该怎么解决这个问题呢?

这个可以看看错误日志,看具体的错误信息。我猜测是保存上传文件的文件夹没有写权限,或者不存在。

关于thinkphp图片上传问题

<form method="post" action="upload.php" enctype="multipart/form-data">

<input type='file' name='file'>

<input type='submit' value='提交'>

</form>

//引入UploadFile类

import('ORG.Net.UploadFile');

//实例化UploadFile类

$upload = new UploadFile();

//设置文件大小

$upload -> maxSize = 3292200;

//设置文件保存规则唯一

$upload->saveRule = 'uniqid';

//设置上传文件的格式

$upload -> allowExts = array('jpg','png','jpeg');

//保存路径

$upload->savePath ='./Public/Uploads/';

//设置需要生成缩略图,仅对图像文件有效

$upload->thumb = true;

//设置需要生成缩略图的文件前缀

$upload->thumbPrefix = 'm_'; //生产缩略图也可以根据需要生成1张或多张,2张:'m_,s_'

//设置缩略图最大宽度

$upload->thumbMaxWidth = '150';//2张的不同设置:'150,200'

//设置缩略图最大高度

$upload->thumbMaxHeight = '200';

//删除原图

$upload->thumbRemoveOrigin = true;

//上传失败返回错误信息

if(!$upload->upload()){

$this->error($upload->getErrorMsg());

}else{

$this->success('上传成功');

//获取上传文件的信息

$inf= $upload->getUploadFileInfo();

}

PHP怎样上传图片以及预览图片?

本地图片,就搞个img,设置他的src就可以实现;

参考如下:

<div class="column " style="width: 400px; margin-left: 200px;" id="imageShow">

<div id="productImageNew">@*用于图片预览*@

</div>

<div id="productImage">

<div class="widget the-common-margin-top" style="height: 400px; border: 1px solid #eeeeee;

padding: 3px;">

<img id="imgHolder" style="max-height: 390px; max-width: 390px;" />

</div>

</div>

</div>

<form id="formImageUpload" name="formImageUpload" method="post" action="/DocTeam/ProductsImage/UploadImage"

enctype="multipart/form-data">

<div id="fileDiv">

<input type="file" id="theFile" name="theFile" size="20" style="cursor: pointer;

width: 65px; height: 60px; position: absolute; filter: alpha(opacity:1); -moz-opacity: 0;

opacity: 0; z-index: 102;" />

</div>

<input type="hidden" name="imageId_hide" id="imageId_hide" />

</form>

<div id="cover" style="position: absolute; background-color: White; z-index: 10;

filter: alpha(opacity=100); -moz-opacity: 1; opacity: 1; overflow: auto; width: 400px;">

<input id="selectImage" type="button" style="width: 65px; height: 60px;" value="Select" />

<br />

<br />

<input type="button" value="Upload" id="imageUpload" style="width: 65px; height: 60px;"

disabled="disabled" onclick="javascript:uploadImage();" />

</div>

//js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3

function PreviewImage(fileObj, imgPreviewId, divPreviewId) {

var allowExtention = ".jpg,.bmp,.gif,.png"; //允许上传文件的后缀名document.getElementById("hfAllowPicSuffix").value;

var extention = fileObj.value.substring(fileObj.value.lastIndexOf(".") + 1).toLowerCase();

var browserVersion = window.navigator.userAgent.toUpperCase();

if (allowExtention.indexOf(extention) > -1) {

if (fileObj.files) {//HTML5实现预览,兼容chrome、火狐7+等

if (window.FileReader) {

var reader = new FileReader();

reader.onload = function (e) {

document.getElementById(imgPreviewId).setAttribute("src", e.target.result);

}

reader.readAsDataURL(fileObj.files[0]);

} else if (browserVersion.indexOf("SAFARI") > -1) {

alert("不支持Safari6.0以下浏览器的图片预览!");

}

} else if (browserVersion.indexOf("MSIE") > -1) {

if (browserVersion.indexOf("MSIE 6") > -1) {//ie6

document.getElementById(imgPreviewId).setAttribute("src", fileObj.value);

} else {//ie[7-9]

fileObj.select();

if (browserVersion.indexOf("MSIE 9") > -1)

fileObj.blur(); //不加上document.selection.createRange().text在ie9会拒绝访问

var newPreview = document.getElementById(divPreviewId + "New");

if (newPreview == null) {

newPreview = document.createElement("div");

newPreview.setAttribute("id", divPreviewId + "New");

}

var a = document.selection.createRange().text;

// newPreview.style.width = document.getElementById(imgPreviewId).width + "px";

// newPreview.style.height = document.getElementById(imgPreviewId).height + "px";

//newPreview.style.width = 390 + "px";

newPreview.style.height = 390 + "px";

newPreview.style.border = "solid 1px #eeeeee";

newPreview.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src='" + document.selection.createRange().text + "')";

var tempDivPreview = document.getElementById(divPreviewId);

// tempDivPreview.parentNode.insertBefore(newPreview, tempDivPreview);

newPreview.style.display = "block";

tempDivPreview.style.display = "none";

}

} else if (browserVersion.indexOf("FIREFOX") > -1) {//firefox

var firefoxVersion = parseFloat(browserVersion.toLowerCase().match(/firefox\/([\d.]+)/)[1]);

if (firefoxVersion < 7) {//firefox7以下版本

document.getElementById(imgPreviewId).setAttribute("src", fileObj.files[0].getAsDataURL());

} else {//firefox7.0+

document.getElementById(imgPreviewId).setAttribute("src", window.URL.createObjectURL(fileObj.files[0]));

}

} else {

document.getElementById(imgPreviewId).setAttribute("src", fileObj.value);

}

} else {

alert("仅支持" + allowExtention + "为后缀名的文件!");

fileObj.value = ""; //清空选中文件

if (browserVersion.indexOf("MSIE") > -1) {

fileObj.select();

document.selection.clear();

}

fileObj.outerHTML = fileObj.outerHTML;

}

}

function setTheFileButton_Cover_SelectImageButton() {

// debugger;

// var position = $("#selectImage", "#cover").position();

// var css = { top: position.top, left: position.left };

// $("#theFile", "#fileDiv").css(css);

}

var $imgHolder = $('#imgHolder', "#productImage");

var tempDiv = $("#temp_div");

$("#select", "#cover").click(function () {

$("#theFile", "#fileDiv").click().select();

});

$("#theFile", "#fileDiv").click(function () {

$(this).blur();

});

$("#theFile", "#fileDiv").change(function () {

PreviewImage(this, 'imgHolder', 'productImage');

setTheFileButton_Cover_SelectImageButton();

// alert("预览已生成!");

$("#imageUpload").prop("disabled", false);

});

php 图片流 转为base64

使用PHP对图片进行base64解码输出

<?php

$img = 'test.jpg';

$base64_img = base64EncodeImage($img);

echo '<img src="' . $base64_img . '" />';

function base64EncodeImage ($image_file) {

$base64_image = '';

$image_info = getimagesize($image_file);

$image_data = fread(fopen($image_file, 'r'), filesize($image_file));

$base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));

return $base64_image;

}

?>

php表单上传图片到七牛云存储并返回地址……求具体流程~有代码更好

有的,我最近研究了一下,写了一篇记录,如下

原文地址:

网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了。研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向。

首先本篇文章实现的功能如下:

1.利用表单上传功能,用户可以点击选择文件按钮,选择本地的一个文件,同时设定上传的图片的名称,点击上传按钮可以上传并存储到七牛云存储。

2.在点击上传时会检测文件的后缀名,限制为jpg和png格式存储。

3.上传成功后跳转到自己设定的一个URL,并传回文件信息,如文件名。而不是显示七牛白花花的json显示页面。

好啦,那我们开始吧,首先我们要有一个七牛云存储账号,如果没有的就自己去申请吧。

七牛云存储传送门:

一.SDK下载

戳这个网址下载一下SDK吧,里面封装了文件上传下载等等的方法,我们引入之后可以直接调用。

SDK之中有一个qiniu的文件夹,这是所有的SDK实货,这个是最重要的。我们首先要把这个文件夹及里面的文件放到项目文件夹中,比如我放到这里。

大家可以看到有一个qiniu文件夹。好啦,资源支持就是这样。接下来我们要实现代码咯。

二.文件的上传。

1.首先把你七牛云存储的密钥照出来,点击账号设置可以看到有一个AccessKey和SecretKey,留着备用。

2.上传凭证生成。

在这里我们首先要引入rs.php文件,自己找一对应路径,代码如下:

require_once(dirname(__FILE__)."/qiniu/rs.php");

dirname()是指的绝对路径,有时相对路径会出现问题,建议在前面加上dirname方法获取绝对路径。

require_once是引入文件,表示该文件只引入一次。

然后,传入你的AccessKey和SecretKey

代码如下:

$accessKey?=?'Imn35KC5pRX7Ov3scxbYkvNk6oIx7zWsBRp16';??//换成你自己的密钥

$secretKey?=?'s29vc9tlCvs23wRh7QScYTuzCDmEroKj1ddssz';????//换成你自己的密钥

Qiniu_SetKeys($accessKey, $secretKey);

然后建一个上传策略对象,将你的bucket?传入,bucket 就是你的空间名。

$bucket = 'designpartners';

$putPolicy = new Qiniu_RS_PutPolicy($bucket);

然后调用此方法来生成上传凭证。

$upToken = $putPolicy->Token(null);

接下来就写一个html表单

<form?method="post"?action=""?name?=?"form"?enctype="multipart/form-data">

????<ul>

????????????<input?type="hidden"??id="token"?name="token"??value=<?php?echo?$upToken?>>

????????<li>

????????????<label?for="key">key:</label>

????????????<input?name="key"?value="">

????????</li>

????????<li>

????????????<label?for="bucket">照片:</label>

????????????<input?name="file"??type="file"?/>

????????</li>

????????<li>

????????????<input?type="submit"?value="提交"?>

????????</li>

????</ul>

</form>

action?就填写?up.qiniu测试数据,表单提供了一个输入框key,用来输入你想保存的图片名称,上传到七牛之后就是这个名字。

然后一个文件选择,一个提交按钮。运行结果如下:

输入key值和选择照片即可实现照片的上传。哈哈哈有没有很简单。

三、文件下载

原理和文件上传功能相仿。

引入文件

require_once(dirname(__FILE__)."/qiniu/rs.php");

声明你的七牛云存储域名和两个密钥以及向下载的文件名称

$key?=?'00000';

$domain?=?'designpartners.qiniudn测试数据';

$accessKey?=?'IOImn35KC5p3scxbYkvNk6oIxB7zWsBRp16';

$secretKey?=?'s29vc9tlCvs23wCDmIbUSi4EroKj1z';

注意:1.key值即为文件名,不要加后缀

2.domain即为bucket加上qiniudn测试数据,例子中的designpartners就是我在上传图片时用的bucket名。

3.accessKey和secretKey换成你自己的,直接用我的不行的..因为我修改了.

Qiniu_SetKeys($accessKey,?$secretKey);??

$baseUrl?=?Qiniu_RS_MakeBaseUrl($domain,?$key);

$getPolicy?=?new?Qiniu_RS_GetPolicy();

$privateUrl?=?$getPolicy->MakeRequest($baseUrl,?null);

echo?$privateUrl?.?"\n";

传入这四个值即可生成一样url,直接访问url即可实现图片的下载。

在引入图片时直接

<img src = "<?php echo $privateUrl; ?>"/>

即可引入图片咯,很简单的吧。

四、303重定向

在上面的方法中,我们上传图片成功后跳转到up.qiniu测试数据下,会显示白白的网页,显示一个json字符串,但是在实际网站开发中我们肯定 不能让用户看到这种网页,所以我们用到了303跳转。SDK中也为我们封装了这个方法。使用其实非常简单。在上传文件的代码中添加两行代码即可

$putPolicy?=?new?Qiniu_RS_PutPolicy($bucket);

$putPolicy->ReturnUrl?=?site_url()."/upload/receiveInfo";

$putPolicy->ReturnBody='{"key":?$(key)}';

注意:1.?ReturnUrl和ReturnBody必须指定,并且首字母要大写,很多人都小写开头,这样会跳转不成功。

2.ReturnUrl必须是一个公网可以访问的网址,在本地测试是不可能通过的。比如你写成localhost,七牛服务器是定位不到的。

3.这个ReturnUrl的链接后会跟着一个?upload_ret=XXX,可以用get方法获取这个upload_ret。upload_ret的内容是base64安全编码的json形式的key值。

值的解析:比如我上传的文件名是555

upload/receiveInfo?upload_ret=eyJrZXkiOiAiNTU1In0=

网址后缀如上所示,把那个upload_ret复制下来,用base64解码可以出现如下结果:

{"key": "555"}

所以,我们要获取555这个值的代码如下,即解析代码如下:

$upload_ret?=?$_GET['upload_ret'];

$json_ret?=?base64_decode($upload_ret);

$result=json_decode($json_ret);

echo?"key".$result->key;

好啦,获取到这个key值之后,你可以选择存到数据库或者进行其他的操作咯。

五、上传前文件类型的验证

我们可以用js来验证文件的后缀名,

在form的属性里加上

onsubmit="return isValidateFile('file');"

加上一个js方法

<script>

function?isValidateFile(obj)?{

var?extend?=?document.form.file.value.substring(document.form.file.value.lastIndexOf(".")?+?1);

if?(extend?==?"")?{

alert("请选择头像");

return?false;

}

else?{

if?(!(extend?==?"jpg"?||?extend?==?"png"))?{

alert("请上传后缀名为jpg或png的文件!");

return?false;

}

}

return?true;

}

</script>

即可验证它的类型是否合法。

附:CI代码实现:

获取Uptoken:

function?getUptoken(){

require_once(dirname(__FILE__)."/qiniu/rs.php");

//远程存储空间名称

$bucket?=?'designpartners';

$accessKey?=?'IOImn35KCRX7Ov3scvNk6oIxB7zWsBRp16';

$secretKey?=?'s29vc9tlCvs23wRhTuzCDmIbUSi4EroKj1z';

Qiniu_SetKeys($accessKey,?$secretKey);

$putPolicy?=?new?Qiniu_RS_PutPolicy($bucket);

echo?site_url();

$putPolicy->ReturnUrl?=?site_url()."/upload/receiveInfo";

$putPolicy->ReturnBody='{"key":?$(key)}';

$upToken?=?$putPolicy->Token(null);

return?$upToken;

}

文件上传:

public?function?uploadPic(){

$upToken?=?$this->getUptoken();

????????$data['upToken']?=?$upToken;

$this->load->view('upload',$data);

}

303重定向解析:

public?function?receiveInfo(){

$upload_ret?=?$_GET['upload_ret'];

$json_ret?=?base64_decode($upload_ret);

$result=json_decode($json_ret);

echo?"key".$result->key;?

}

文件下载:

public?function?downloadPic(){

require_once(dirname(__FILE__)."/qiniu/rs.php");

$key?=?'00000';

$domain?=?'designpartners.qiniudn测试数据';

$accessKey?=?'IOImn35KC57Ov3scxbYkvNk6oIxB7zWsBRp16';

$secretKey?=?'s29vc9tlCvsh7QScYTuzCDmIbUSi4EroKj1z';

Qiniu_SetKeys($accessKey,?$secretKey);??

$baseUrl?=?Qiniu_RS_MakeBaseUrl($domain,?$key);

$getPolicy?=?new?Qiniu_RS_GetPolicy();

$privateUrl?=?$getPolicy->MakeRequest($baseUrl,?null);

echo?"====>?getPolicy?result:?\n";

echo?$privateUrl?.?"\n";

}

表单:

<script>

function?isValidateFile(obj)?{

var?extend?=?document.form.file.value.substring(document.form.file.value.lastIndexOf(".")?+?1);

if?(extend?==?"")?{

alert("请选择头像");

return?false;

}

else?{

if?(!(extend?==?"jpg"?||?extend?==?"png"))?{

alert("请上传后缀名为jpg或png的文件!");

return?false;

}

}

return?true;

}

</script>

<form?method="post"?action=""?name?=?"form"?enctype="multipart/form-data"?onsubmit="return?isValidateFile('file');">

????<ul>

????????????<input?type="hidden"??id="token"?name="token"??value=<?php?echo?$upToken?>>

????????<li>

????????????<label?for="key">key:</label>

????????????<input?name="key"?value="">

????????</li>

????????<li>

????????????<label?for="bucket">照片:</label>

????????????<input?name="file"??type="file"?/>

????????</li>

????????<li>

????????????<input?type="submit"?value="提交"?>

????????</li>

????</ul>

</form>

关于php上传图片解码的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php上传图片解码 php图片上传代码详解的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did196986
更新时间:2023-04-26   阅读:14次

上一篇: php中扫码支付 php扫码登录如何实现

下一篇:生成静态php 生成静态库xa命令

相关资讯

最新资料更新

  • 1.php图书管理系统 php图书管理系统全部代码
  • 2.web安全php Web安全原理分析与实践
  • 3.php的sql累加 sql实现累加
  • 4.订餐系统php 订餐系统升级维护,请前往
  • 5.php瀑布流响应 html 瀑布流
  • 6.php每天更新数据 php数据库更新语句
  • 7.搭建分站源码php 建立分站怎么建
  • 8.php如何制作游戏 php游戏源码
  • 9.phpvc6vc9的简单介绍
  • 10.php实现小说目录的方法 php自动生成小说
  • 11.关于php_ssh.dll的信息
  • 12.php视频太大怎么传输 php上传视频压缩
  • 13.php接收url php接收json数据
  • 14.红帽升级php 红帽linux最新版
  • 15.php拼音模糊查询 php模糊搜索功能
  • 16.关于php2esgbi的信息
  • 17.php人员查询系统 php信息查询系统
  • 18.php5.2cgi的简单介绍
  • 19.php怎么使用css php怎么使用数据库锁
  • 20.qbapi.php的简单介绍

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]