【问题标题】:How can I clear previously selected files in blueimp's jquery-fileupload plugin?如何清除 blueimp 的 jquery-fileupload 插件中先前选择的文件?
【发布时间】:2020-03-25 19:34:51
【问题描述】:

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

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

我想知道如何访问文件上传插件存储要提交的文件的变量,所以我可以清空该变量

    done: function(e, result){
        ....
    }

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

我还是没有解决这个问题,发现我的情况和this POST一样 和this一样

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

【问题讨论】:

  • 你尝试add回调了吗?
  • 我尝试add回调,但它收到的data.files仍然一次只包含一个文件。
  • 我遇到了同样的问题。有人有解决办法吗?
  • @AllanRuin 我的情况完全相同,不幸的是,没有答案。 :(

标签: jquery file-upload


【解决方案1】:

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

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

$('#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/

【讨论】:

    【解决方案2】:

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

    更多详情请点击此处:https://stackoverflow.com/a/34092755/1222040

    【讨论】:

      猜你喜欢
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 2016-12-25
      • 2014-12-10
      • 2016-04-09
      相关资源
      最近更新 更多