如何在运行时从上传列表中跳过或删除某些文件

时间:2018-06-28 18:08:31

标签: javascript php jquery node.js jquery-file-upload

我正在使用blueimp plugin https://github.com/blueimp/jQuery-File-Upload/wiki/API

我需要在运行时从队列中删除一些文件。

从服务器状态为code 17 (文件已退出)时,应删除该特定文件。

这是我到目前为止一直没有成功的尝试。

$('#fileupload').fileupload({
    url: 'url.php',
    maxChunkSize: 65536, // 120 KB,
    maxRetries: 10,
    dataType: 'json',
    multipart: false,
    sequentialUploads: true,
    add:function(){........},
    done:function(){........}
}).on('fileuploadchunkdone', function (e, data) {
    if(data.result.status == 17){
        var currentFileObject = data.files[0];
        var index = data.originalFiles.indexOf(currentFileObject); // find index in originalFiles
        data.originalFiles.splice(0,index);
        //data.files.length = 0; // if i uncomment this line some error will come, like undefined fileName
        data.submit();
    }
});

我正在finding中通过data.originalFiles删除文件

注意:请注意),我没有使用任何ui provided by plugin (cancel, update, crop image, thumbnail)

为实验创建了小提琴http://jsfiddle.net/ChJ9B/219/

请帮助我解决这个问题。

谢谢!!!!

2 个答案:

答案 0 :(得分:1)

您可以使用pylint方法来取消文件的上传。

根据您的情况,您可以将所有文件上传请求保存到一个对象,然后中止特定的对象。

.abort()

,然后在filesList.forEach(function(elm) { jqXHR[elm.name] = $('#fileupload').fileupload('send', {files: elm});// you should save some id or timestamp }); 事件的回调中,您可以查找文件的名称,然后从fileuploadchuckdone对象中退出。

jqXHR

P.S。我没有运行代码,只是分享想法。

答案 1 :(得分:-1)

您应该只致电data.abort();就可以了。

或者您也可以致电data.context.remove()