【问题标题】:onComplete and onCompleteAll events failing to fire when using Uploadify使用 Uploadify 时无法触发 onComplete 和 onCompleteAll 事件
【发布时间】:2010-11-26 20:17:23
【问题描述】:

我一直在使用uploadify (www.uploadify.com) 将图像上传到我的网站,它运行良好,直到您尝试对其进行扩展。上传文件后,我试图让它从列表中删除排队的文件。为此,您将像这样初始化uploadify:

            $("#fileUpload").uploadify({
            'uploader': '/scripts/uploadify.swf',
            'cancelImg': '/images/cancel.png',
            'script': '/Album/Manage/',
            'fileDesc': 'Image Files',
            'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
            'multi': true,
            'auto': false,
            'simUploadLimit': 3,
            'scriptData': {'album_id':'7'},
            onComplete: function(event, queueID, fileObj, response, data){
                alert(queueID); 
            }
        });

在上面的示例中,您可以将 alert(queueID) 替换为 $("#fileUpload").uploadifyCancel(queueID) - 我只是在事件触发时提醒我 - 这永远不会发生。我用过 IE 和 Firefox,两者都没有区别。有人有这方面的经验吗?

【问题讨论】:

    标签: javascript upload uploadify


    【解决方案1】:

    已解决!

    好吧,我认为这是整个互联网(包括 Uploadify 文档和支持页面)上唯一一篇描述 Uploadify 在 .Net MVC 应用程序中的怪癖

    的文章

    经过大量测试,我发现:

    1. 如果接受上传文件的脚本(在 uploadify 初始化代码中指定为 'script': '/Album/Manage/')不返回任何内容,则 Uploadify 的响应事件不会触发 - 我认为错误会停止处理。我的脚本是控制器中的一个动作,它的返回类型是字符串。如果有错误,它将错误作为字符串返回,否则不返回任何内容。为了解决这个问题,我所做的只是让它返回“OK”,如果没有出错而不是什么都没有。

    2. 传递脚本数据(在 uploadify 中指定为 'scriptData': {'album_id':'7'})我这样做的方式也导致错误 - 我还没有弄清楚原因(并且 Uploadify 之父 RonnieSan 似乎没有看到有什么问题)所以如果有人知道,也许他们可以回复这篇文章

    3. 您不得在事件处理程序周围加上单引号,例如onComplete: function(event, queueID, fileObj, response, data) { ... }

    希望这会有所帮助 - 如果有人需要 .Net MVC 实施方面的帮助,请给我留言。

    【讨论】:

    • 我会在这里添加另一个条件。您用作上传按钮的任何按钮都需要有一个 id,否则,虽然上传会发生,但不会触发任何事件。
    • 感谢发帖,真的很有帮助!
    • 很高兴我找到了这个 -- onComplete 不会触发,除非你返回一些东西,任何东西,而不是一个空文档!
    • @Jimbo 你好!不要劫持这个线程,但我正在寻找一个使用带有 mvc3 的 uploadify 的代码示例,我可以在其中将表单数据传递给“脚本”中定义的 Upload() 控制器操作(脚本数据不起作用)?另外,我试图弄清楚如何在 oncomplete 触发时连接另一个控制器操作,但希望该操作返回一个 actionresult,以便我可以适当地更新我的自定义视图。任何信息/代码将不胜感激。谢谢!
    【解决方案2】:

    我也一直在 .NET MVC 应用程序中使用 uploadify。我很清楚你的意思。我为解决您的问题所做的只是让我的控制器的操作返回一个 JSON 响应,然后我可以在 onComplete 事件中将其解析回。我唯一遇到的事件问题是响应中缺少实际文件(因为我显示图像的缩略图)。

    【讨论】:

      【解决方案3】:

      对于那些使用 Mac 的用户,请使用 HTTP Scoop 来查看请求,因为 Firebug 不会显示它。更多来自this blog的HTTP Scoop。

      【讨论】:

        【解决方案4】:

        【讨论】:

        • 无论如何都要链接到您的来源,但也请在您的答案中放置相关信息,以防止其价值因链接腐烂而丢失。
        猜你喜欢
        • 2017-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-24
        • 1970-01-01
        • 2011-01-03
        • 1970-01-01
        • 2013-09-07
        相关资源
        最近更新 更多