之前项目用uploadify(flash version)实现图片上传功能,依赖于flash的上传插件浏览器兼容性不够,于是找了Huploadify替代uploadify,原因如下:
1、不依赖于flash。
2、库文件大小是uploadify的三分之一。
3、浏览器兼容性测试,支持ie11、firefox(版本 33.1.1)、chrome(版本 38.0.2125),移动端支持安卓,iPhone图片上传(其他浏览器没测)。
4、不用改服务端。
一、接下来说下Huploadify的安装:
git下载地址:https://github.com/Double-Lv/Huploadify
下载后如下css和js文件在head中引入(jquery.Huploadify.js要在jquery库文件后引入):
Huploadify.css
jquery.Huploadify.js
二、实现上传代码:
html如下
- <img src="" alt="" class="cardImg" id="imgid"/>
- <div id="fileid"></div>
js如下
-
-
-
-
-
- function uploadInit(domName,domPic){
- $("#"+domName).Huploadify({
- auto:true,
- fileTypeExts:'*.*',
- multi:false,
- fileObjName:'Filedata',
- fileSizeLimit:99999999999,
- showUploadedPercent:false,
- buttonText:'上传',
- uploader:param.uploadurl,
- onUploadSuccess:function(file,data){
- var Data=JSON.parse(data);
- if(Data.success==true){
- $("#"+domPic).attr("src",Data.result);
- param.uploadsuccess(Data.result);
- }else{
- jQuery.longhz.alert(Data.resultDes);
- }
- },
- onUploadError:function(file,response){
- jQuery.longhz.alert("上传失败!");
- }
- });
-
- }
-
- uploadInit("fileid","imgid");
三、Huploadify的配置
打开jquery.Huploadify.js能看到Huploadify的完整配置项,如下:
- var defaults = {
- fileTypeExts:'*.*',
- uploader:'',
- auto:false,
- method:'post',
- multi:true,
- formData:null,
- fileObjName:'file',
- fileSizeLimit:2048,
- showUploadedPercent:true,
- showUploadedSize:false,
- buttonText:'选择文件',
- removeTimeout: 1000,
- itemTemplate:itemTemp,
- onUploadStart:null,
- onUploadSuccess:null,
- onUploadComplete:null,
- onUploadError:null,
- onInit:null,
- onCancel:null,
- onClearQueue:null,
- onDestroy:null,
- onSelect:null,
- onQueueComplete:null
- }
看注释基本能看懂,不明白的找到相应的方法定义可知方法的使用条件,比如
- onUploadSuccess:在返回状态status为200时触发
- onUploadError:返回状态status不为200时触发
- onUploadComplete:在onUploadSuccess或onUploadError触发后触发