我正在尝试使用blueimp file upload plugin实现iframe传输文件上传,如下所示:
$(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;
});
当我调试需要文件上传的视图时,我的debugger
函数内的error
调用被命中,但所有三个参数都是未定义的,就好像无故错误地调用了错误函数一样。 profilePicInput
是包含一个所选文件的有效文件输入。 $.acme.resource.links.editProfilePictureUrl
指向的操作是一个有效的操作URL,但我的控制器中的断点永远不会被击中。我也不知道如何继续。
我知道API文档说:
fileInput属性必须是输入为的jQuery集合 输入有效文件选择的文件。
所以我尝试了两种设置fileUpload
选项的方法,结果相同。
fileUpload: profilePicInput
fileUpload: $(profilePicInput)
顺便说一下,这个代码是在视图模型脚本中调用的,而不是直接在视图本身中调用,如果这可能意味着影响任何内容。我没有看到,因为viewmodel脚本无论如何都被加载到视图中。
答案 0 :(得分:0)
这是一个常见问题:
最后一个链接建议如下:
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.');
}
我希望能回答你的问题。如果我没有正确理解你的问题,请告诉我。