(function($){
$.fn.Huploadify = function(opts){
var itemTemp = '
';
var defaults = {
fileTypeExts:'',//允许上传的文件类型,格式'*.jpg;*.doc'
uploader:'',//文件提交的地址
auto:false,//是否开启自动上传
method:'post',//发送请求的方式,get或post
multi:false,//是否允许选择多个文件
maxFileNumber:10, //最多能上传的文件数量
formData:null,//发送给服务端的参数,格式:{key1:value1,key2:value2}
fileObj:'jarFile',//在后端接受文件的参数:文件
fileObjName:'fileName',//在后端接受文件的参数:文件名称
fileSizeLimit:2048,//允许上传的文件大小,单位KB
showUploadedPercent:true,//是否实时显示上传的百分比,如20%
showUploadedSize:false,//是否实时显示已上传的文件大小,如1M/2M
buttonText:'选择文件',//上传按钮上的文字
removeTimeout: 1000,//上传完成后进度条的消失时间
itemTemplate:itemTemp,//上传队列显示的模板
onUploadStart:null,//上传开始时的动作
onUploadSuccess:null,//上传成功的动作
onUploadComplete:null,//上传完成的动作
onUploadError:null, //上传失败的动作
onInit:null,//初始化时的动作
onCancel:null//删除掉某个文件后的回调函数,可传入参数file
}
var option = $.extend(defaults,opts);
//将文件的单位由bytes转换为KB或MB,若第二个参数指定为true,则永远转换为KB
var formatFileSize = function(size,byKB){
if (size> 1024 * 1024&&!byKB){
size = (Math.round(size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
}
else{
size = (Math.round(size * 100 / 1024) / 100).toString() + 'KB';
}
return size;
}
//根据文件序号获取文件
var getFile = function(index,files){
for(var i=0;i';
inputStr += '';
inputStr += option.buttonText;
inputStr += '';
var uploadFileListStr = '';
_this.append(inputStr+uploadFileListStr);
//创建文件对象
var fileObj = {
fileInput: _this.find('.selectbtn'), //html file控件
uploadFileList : _this.find('.uploadify-queue'),
url: option.uploader, //ajax地址
fileFilter: [], //过滤后的文件数组
filter: function(files) { //选择文件组的过滤方法
var arr = [];
if(this.uploadFileList.find('.uploadify-queue-item:visible').length>=option.maxFileNumber) {
alert('只能上传' + option.maxFileNumber + '个文件!');
} else {
var typeArray = getFileTypes(option.fileTypeExts);
if(typeArray.length>0){
for(var i=0,len=files.length;ioption.fileSizeLimit){
alert('文件'+thisFile.name+'大小超出限制!');
continue;
}
if($.inArray(thisFile.name.split('.').pop(),typeArray)>=0){
arr.push(thisFile);
}
else{
alert('文件'+thisFile.name+'类型不允许!');
}
}
}
}
return arr;
},
//文件选择后
onSelect: function(files){
for(var i=0,len=files.length;i0) {
this.fileInput.change(function(e) {
fileObj.funGetFiles(e);
});
}
//点击上传按钮时触发file的click事件
_this.find('.uploadify-button').on('click',function(){
_this.find('.selectbtn').trigger('click');
});
option.onInit&&option.onInit();
}
};
//初始化文件对象
fileObj.init();
});
}
})(jQuery)