- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精品字里行间
thinkphp整合uploadify,单图片上传+预览
用户头像上传并预览,简短实用的头像上传功能。
网上找了半天头像上传程序,没发现好用的,要么不兼容某些浏览器,要么功能不切合要求。查找有关资料后,发现thinkphp整合uploadify能知足我项目的需求。
着手整起,
首先,下载jquery.uploadify插件(最新版是),把里面的
jquery.uploadify.min.js放置到项目JS目录中,还有样式文件uploadify.css也放到项目CSS目录中,把uploadify.swf文件放置到任意目录,稍后正确引用
即可。
第二步,在模板中引用以上JS和CSS文件(自然,jquery库文件也是必不可少的),在head区写入以下代码:
scripttype=text/javascript
//图片上传
$(function( ){
4.
$(#file_upload).uploadify({
5.
swf
:__PUBLIC__/js/uploadify.swf,
6.
uploader:{:U(Public/uploadify)},
7.
buttonText:上传图片,
8.
onUploadSuccess:function(file,data,response){
9.
$(#image).attr(src,__PUBLIC__/images/m_+data);
10.
$(#pic).val(data);
11.
},
12.
});
});
/script
这一步,实际上直接复制插件中的uploadify.php中的代码到控制中也是能接
收图片并上传的,但不太好使(比方没有重命名、不能生成多张规格图片等),所以我控制器直接用了Thinkphp的方法,还有要解释下,onUploadSuccess方法是在文件上传成功后履行的方法,我这里是把默认显示的图片的src替换掉,以实时显示预览图,并且由于上传图片只是把图片传上去了,但并没有更新数据
库,所以要把图片名赋给一个隐藏表单,在点击保留时再更新数据库。(这样做似乎不科学,但我想不出更好的办法了)
第三步:
//图片上传实现
publicfunctionuploadify( ){
if(!empty($_FILES)){
import(ORG.Net.UploadFile);
$upload=newUploadFile( );//实例化上传类
$upload-maxSize=2048000;
放心做自己想做的
精品字里行间
$upload-allowExts=array(jpg,jpeg,gif,png);
$upload-savePath=./Public/images/;
$upload-thumb=true;//设置缩略图
import(ORG.Util.Image);
$upload-thumbPrefix=m_;//生成缩略图
$upload-thumbMaxWidth=425;
$upload-thumbMaxHeight=300;
$upload-saveRule=uniqid;//上传规则
$upload-thumbRemoveOrigin=true;//删除原图
if(!$upload-upload( )){
$this-error($upload-getErrorMsg( ));//获取失败信息
}else{
$info=$upload-getUploadFileInfo( );//获取成功信息
}
echo$info[0][savename];//返回文件名给JS作回调用
}
}
第四步,接着,建立如下HTML代码:
imgid=imagesrc=__PUBLIC__/picupload.pngwidth=425height=300border=0/inputid=file_uploadname=file_uploadtype=filemultiple=truevalue=/
显示效果如下:
点击图片下方的上传头像,图片马上就上传到指定服务器目录,并且把缩略图给
显示出来。
本程序有个缺点:如果用户不停地址击上传,会造成服务器上图片泛滥。。因为
只有最后一次上传的才会保留入数据库,其他的都是废的了,而现在没有解决之。
(提供一个思路:用户头像上传的时候,把用户ID作为图片名称前缀或后缀,
以此来判断图片是否有用)
还有就是,上传成功后会有个complete的提示,我没有做办理,这个能够障蔽掉的,如果不需要(需要的话能够自己定义样式)。
还有人说那个上传按钮不漂亮,能够用图片替换(buttonImage=xxx.png),
我反而感觉用图片替换更不漂亮。实际上这个是能够改正uploadify.css实现
放心做自己想做的
原创力文档


文档评论(0)