4

我正在使用Uploadify上传文件。问题是,我需要在处理这些文件期间通知用户任何错误。

Uploadify 有onErroronCompleteonAllComplete事件处理程序,但我不知道如何触发这些事件,以便用户了解正在发生的事情。

我需要发送 JSON 字符串吗?这里这里这里都有一个线索,但我无法让它工作。也许论坛上的帖子已经过时了。

有人有任何适用于 Uploadify 2.1 的示例吗?

4

3 回答 3

4

onError在uploadify的选项中:

$("#fileInput").uploadify({
  onError: function(e, q, f, o) {
    alert("ERROR: " + o.info);
  }
});

文档

上传过程中发生错误时触发的函数。默认事件处理程序将错误消息附加到返回错误的队列项,并将其队列项容器更改为红色。

四个参数被发送到函数:

  • event:事件对象。
  • queueID:返回错误的文件的唯一标识符。
  • fileObj:一个对象,包含有关所选文件的详细信息。
    • name - 文件的名称
    • size - 文件的大小(以字节为单位)
    • creationDate – 文件的创建日期
    • modifyDate – 文件修改的最后日期
    • type – 以“.”开头的文件扩展名</li>
  • errorObj:一个对象,包含有关返回的错误的详细信息。
    • 类型——“HTTP”、“IO”或“安全”</li>
    • info – 描述返回的错误类型的错误消息
于 2010-01-10T06:18:48.553 回答
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 默认函数存在,同时对其进行扩展。

希望这有帮助!

于 2010-03-26T16:35:38.317 回答
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);
},
于 2010-08-28T06:31:35.810 回答