如何在blueimp的jquery-fileupload插件中清除以前选择的文件?

时间:2014-01-17 02:26:10

标签: jquery file-upload

我正在使用jQuery-File-Upload异步上传文件。 但是,我发现添加文件按钮会在每次选择时继续添加文件。

例如,首先我选择File1.txt并点击峰会。然后第二次,我添加File2.txt,所选文件将同时为File1.txtFile2.txt!所以当我点击提交时,我第二次上传两个文件!

我想知道如何访问变量,其中文件上传插件存储文件将被提交,所以我可以在

中实现变量
    done: function(e, result){
        ....
    }

我知道有一个change回调,但收到的更改回调(data.files)只包含这次选择的文件,而不包含要提交的整个文件列表。

我仍然没有解决这个问题,我发现我的情况与this POST相同  它与this

相同

然而,没有人找到一个满意的答案。虽然有一些技巧可以解决。

2 个答案:

答案 0 :(得分:0)

我有一个类似的问题,以前上传的文件包含在下一次上传中。就像您一直努力奋斗了几个小时一样。直到我尝试了以下解决方案。

在“添加功能”上,只需添加文件输入元素的“更改”事件,如下所示:

$('#YourFileUploadElementId').change(function(e) {
     data.files.splice(0); // Clear All Existing Files
});

下面的完整示例:

$('#YourFileUploadElementId').fileupload({
    // Some options
    add: function (e, data) {
        $('#YourFileUploadElementId').change(function(e) {
          data.files.splice(0); // Clear All Existing Files
        });
    },
    // Other Events
 });

注意:只需将 YourFileUploadElementId 更改为您的文件上传元素ID。

这是jsfiddle.net上的完整示例

http://jsfiddle.net/dustapplication/cjodz2ma/5/

答案 1 :(得分:-1)

我遇到了类似的问题,其中先前上传的文件包含在下一次上传中。我想出的解决方案是通过将文件名存储在数组中并检查“发送”回调(每个文件上载请求的开始回调)来跟踪所有上传尝试(如果文件已经上传)(如果此回调返回false,文件上载请求被中止)。

有关详情,请访问:https://stackoverflow.com/a/34092755/1222040