完成整个过程的jQuery FileUpload回调

时间:2015-12-08 12:53:20

标签: javascript jquery jquery-file-upload blueimp

我正在使用Blueimp Jquery File Upload plugin上传文件。完成上传过程后,我想做一些事情。因此,如果我拖放4个文件(一次),我想在上传所有文件时调用一些代码。我怎么能这样做?

我尝试过使用donestopprogressall等许多回调,但似乎没有什么是我正在寻找的。我需要确保在运行代码之前调用了最后一个done

我最接近stop,但有时似乎在done之前运行。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

更新 - 我在评论中了解到,回调的触发时间与上传的文件数相同。所以正确的答案是使用回调“始终”并放置一个计数器。每次上传文件时,计数都会增加。

// Variables to put before the .fileUpload and to be init in "add"
var nbElementsToUpload = 0;
var nbElementsUploaded = 0;


.bind('fileuploadalways', function (e, data) {
    nbElementsUploaded++;
    if(nbElementsToUpload === nbElementsUploaded){
         /* All elements uploaded */
    }
})
  

你说的是“最后”完成了。你是什​​么意思?你是在上传4次还是4次调用?

     

您有一个插件的回调函数列表。   https://github.com/blueimp/jQuery-File-Upload/wiki/Options#callback-options

     

如果您想捕获成功上传请求,请使用“完成”   https://github.com/blueimp/jQuery-File-Upload/wiki/Options#done

     

如果要在完成后捕获所有已完成的操作(包括错误和中止),请使用“始终”回调。   https://github.com/blueimp/jQuery-File-Upload/wiki/Options#always

     

我自己使用这个插件没有“完成”和“失败”的问题。例如:

}).on('fileuploaddone', function (e, data) { // code here })
  .on('fileuploadfail', function (e, data) { // code here })
     

您可以添加console.log以正确查看发生的情况和顺序。

     

此致