【问题标题】:How can I diagnose an error in using jQuery file upload?如何诊断使用 jQuery 文件上传的错误?
【发布时间】:2014-12-14 20:22:14
【问题描述】:

我正在尝试实现iframe传输文件上传,使用blueimp file upload plugin如下:

$(jQueryUploadInput).fileupload();
$(jQueryUploadInput).fileupload('send', {
        forceIframeTransport: true,
        fileUpload: profilePicInput,
        url: $.acme.resource.links.editProfilePictureUrl
    })
    .error(function(jqXHR, textStatus, errorThrown) {
        debugger;
    })
    .success(function(result, textStatus, jqXHR) {
        debugger;
    });

当我调试需要上传文件的视图时,我的error 函数内部的debugger 调用被命中,但所有三个参数都未定义,就好像无缘无故调用了错误函数一样。 profilePicInput 是带有一个选定文件的有效文件输入。 $.acme.resource.links.editProfilePictureUrl 指向的动作是一个有效的动作 url,但我的控制器中的断点甚至从未被命中。我也不知道该怎么做。

我知道 API 文档说:

fileInput 属性必须是一个 jQuery 集合,其输入为 输入带有有效文件选择的文件。

所以我尝试了两种设置fileUpload 选项的方法,结果相同。

fileUpload: profilePicInput
fileUpload: $(profilePicInput)

顺便说一句,这段代码是在视图模型脚本中调用的,而不是直接在视图本身中调用,如果这可能意味着或影响任何事情的话。我不明白怎么做,因为视图模型脚本无论如何都会加载到视图中。

【问题讨论】:

    标签: jquery file-upload jquery-file-upload


    【解决方案1】:

    这是一个常见的问题:

    最后一个链接建议如下:

    processalways: function(e,data){
      if (data.files.error) alert(data.files[0].error);
    }
    

    您还可以访问任何其他Processing Callback Options。请参阅API

    例如,单个文件的任何处理失败也可以通过processfail callback 进行检查

    function (e, data) {
        console.log('Processing ' + data.files[data.index].name + ' failed.');
    }
    

    我希望这能回答你的问题。如果我没有正确理解您的问题,请告诉我。

    【讨论】:

    • 您似乎确实理解了我的问题,但我不明白为什么如果单个文件出现错误,processfail 会产生比error 更多的错误信息?我想答案就在这个问题的另一个漫长的夜晚结束时。
    • @ProfK:但你试过了吗?我认为可能是由于错误消息的 JSON 格式..
    猜你喜欢
    • 1970-01-01
    • 2015-08-05
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    相关资源
    最近更新 更多