最近使用uploadify上传文件时,设置了参数:
'fileTypeExts' : '*.jpg;*.gif;*.png;*.jpeg;*.zip;*.rar;*.tar;*.gz;*.7z;*.doc;*.docx;*.txt;*.xml;*.mp4;*.avi;*.rmvb;*.flv;*.mkv;*.wmv;*.pdf;*.mov;',
因为参数中过滤了压缩文件和XML文件,导致点击上传文件的时候,弹出框弹得特别慢,大概3-5秒的延时。此时如果用户连续点击“上传文件”,进行上传,则会触发errorCode:-120。
'onSelectError': function (file, errorCode, errorMsg) {
switch (errorCode) {
// case -100:
// alert("上传的文件数量已经超出系统限制的" + $('#pic').uploadify('settings', 'queueSizeLimit') + "个文件!");
// break;
case -110:
alert("文件 [" + file.name + "] 超出最大限制" + $('#pic').uploadify('settings', 'fileSizeLimit') + "!");
break;
case -120:
alert("文件 [" + file.name + "] 大小异常!");
break;
case -130:
alert("文件 [" + file.name + "] 类型不允许!");
break;
}
return false;
},
这个报错让我很费解。我猜想是点击多次后,弹出框选择的文件没有被uploadify捕捉到,造成undefined的错误。
解决的办法是:
在选择框触发打开事件时,禁用文件上传。
在选择框关闭后,启用文件上传。
即添加如下代码:
'onDialogOpen': function () {
$('#file').uploadify('disable', true);
},
'onDialogClose': function () {
$('#file').uploadify('disable', false);
}