我只是在处理完所有文件后才尝试在blueimp中发送成功或错误消息...否则,第一个文件将发送成功消息,如果另一个文件有错误,它也会触发错误
这是我的代码:
// Initialize the jQuery File Upload widget:
jQuery('#fileupload').fileupload({
url: url,
done: function (e, data) {
var response = jQuery.parseJSON( data.jqXHR.responseText );
var error = response.files[0].error;
if(error) {
jQuery('#error').show();
jQuery('#error').append('<p><strong>Error given:</strong> '+error+'</p>');
} else {
jQuery('#success').show();
}
},
});
感谢您的帮助!
答案 0 :(得分:2)
如果您希望在单个请求中上传文件,可以使用following option:singleFileUploads:false,
这样,每个文件只会触发1次完成回调。
创建一个全局数组:
var temp = new Array();
然后在完成,失败或始终回调中,您应该使用文件名和成功状态填充数组:
done: function(e, data) {
$.each(data.files, function(i, f) {
temp.push({"name": f.name, "succeed": data.textStatus})
})
},
最后,您可以将每个成功状态检查到 stop 回调中,该回调在每个文件完成时调用:
stop: function(e, data) {
$.each(temp, function(i, f) {
console.log(f.name)
console.log(f.succeed)
});
// Don't forget to empty your array to allow other downoal
temp= new Array();
},
答案 1 :(得分:1)
在github上寻求帮助时,blueimp jQuery-File-Upload的创建者Sebastian Tschan建议我尝试使用fileuploadstop
方法而不是singleFileUploads
...但是,没有一个blueimp { {1}}方法有一个stop
参数,以下是我能够克服这个问题的方法(感谢开发人员朋友的帮助):
<强>使用Javascript:强>
data
效果很好!希望它可以帮助某人。