Add cancel upload or abort functionality to bootstrap multiple file upload plugin

时光怂恿深爱的人放手 提交于 2019-12-05 10:03:39

Finally, after extensive trials and errors and searching for relevant code solutions, I got it working exactly the way I wanted ! I posted my query on the plugin's github issue page and got the help from there.

Below is the code sample that really worked :

1.First you have to bind the fileuploadadd event:

$('#fileupload').bind('fileuploadadd', function(e, data){
      var jqXHR = data.submit(); // Catching the upload process of every file
      $('#cancel_all').on('click',function(e){
            jqXHR.abort();
      });
});

2.Then you have to bind the cancel event that will be called when clicking the "Cancel Upload" button, which will cancel all the file currently being uploaded :

$('#fileupload').bind('fileuploadfail', function(e, data){
    if (data.errorThrown === 'abort')
    {
        //PUT HERE SOME FEEDBACK FOR THE USER
    }
});
Merlin

I think you can find your answer in the document of the plugin from here , I post the code here:

var jqXHR = $('#fileupload').fileupload('send', {files: filesList})
    .error(function (jqXHR, textStatus, errorThrown) {
        if (errorThrown === 'abort') {
            alert('File Upload has been canceled');
        }
    });
$('button.cancel').click(function (e) {
    jqXHR.abort();
});

The code above means uploading files programmatically(mannually). In such a case, for the fileupload function, the second argument must be an object with an array (or array-like list) of File or Blob objects as files property. So you need to get the files array before you execute above code:

var filesList = $("#fileupload").get().files;

I'm not sure whether you need to convert FileList to array like below, but you can try:

var i,files = $("#fileupload").get().files,filesList=[];
for(i=0;i<files.length;i++){
    filesList.push(files.item(i))
}

But be aware that there are limitations here: File is just supported with IE10+ and other modern browsers.

For more information, I list some articles here:

  1. jQuery-File-Upload Programmatic file upload
  2. Using files from web application
  3. FileList API
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!