我正在使用Uploadify上传文件。问题是,我需要在处理这些文件时告知用户任何错误。
Uploadify有onError
,onComplete
和onAllComplete
事件处理程序,但我不知道如何触发这些事件,以便向用户通知正在发生的事情。
我是否需要发送JSON字符串?有一条线索here和here以及here,但我无法使其发挥作用。也许论坛中的帖子已经过时了。
任何人都有任何适用于Uploadify 2.1的例子吗?
答案 0 :(得分:4)
onError
符合uploadify:
$("#fileInput").uploadify({
onError: function(e, q, f, o) {
alert("ERROR: " + o.info);
}
});
在上载过程中发生错误时触发的函数。默认事件处理程序将错误消息附加到返回错误的队列项,并将其队列项容器更改为红色。
向函数发送了四个参数:
- 事件:事件对象。
- queueID :返回错误的文件的唯一标识符。
- fileObj :包含有关所选文件详细信息的对象。
- 名称 - 文件名称
- 大小 - 文件的大小(以字节为单位)
- creationDate - 创建文件的日期
- modificationDate - 文件修改的最后日期
- 类型 - 以“。”
开头的文件扩展名- errorObj :包含有关返回错误的详细信息的对象。
- 类型 - “HTTP”,“IO”或“安全”
- info - 描述返回错误类型的错误消息
答案 1 :(得分:2)
这让我很伤心,但我找到了办法。在uploadify.php文件中,我创建了所有验证。这里的不同之处在于我为每种类型的错误设置了HTTP 4xx代码。
if (! in_array($fileParts['extension'], $typesArray)) {
header("HTTP/1.1 405"); //any 4XX error will work
exit();
}
这会将“405”错误抛回uploadify.js。
在文件中我设置了$(“#fileInput”)。uploadify()我添加了“onError”函数。
'onError' : function(event, ID, fileObj, errorObj) {
var r = "<br />ERROR: ";
switch(errorObj.info) {
case 405:
r += "Invalid file type.";
break;
case 406:
r += "Some other error.";
break;
}
setTimeout('$("#fileInput'+ ID + 'span.percentage").html("'+r+'");',111);
}
这会强制uploadify默认函数存在,同时扩展它。
希望这有帮助!
答案 2 :(得分:0)
onError: function (a, b, c, d) {
if (d.status == 404)
alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
else if (d.type === "HTTP")
alert('error '+d.type+": "+d.status);
else if (d.type ==="File Size")
alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB');
else
alert('error '+d.type+": "+d.text);
},