我正在使用jQuery-File-Upload异步上传文件。 但是,我发现添加文件按钮会在每次选择时继续添加文件。
例如,首先我选择File1.txt
并点击峰会。然后第二次,我添加File2.txt
,所选文件将同时为File1.txt
和File2.txt
!所以当我点击提交时,我第二次上传两个文件!
我想知道如何访问变量,其中文件上传插件存储文件将被提交,所以我可以在
中实现变量 done: function(e, result){
....
}
我知道有一个change
回调,但收到的更改回调(data.files
)只包含这次选择的文件,而不包含要提交的整个文件列表。
我仍然没有解决这个问题,我发现我的情况与this POST相同 它与this
相同然而,没有人找到一个满意的答案。虽然有一些技巧可以解决。
答案 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上的完整示例
答案 1 :(得分:-1)
我遇到了类似的问题,其中先前上传的文件包含在下一次上传中。我想出的解决方案是通过将文件名存储在数组中并检查“发送”回调(每个文件上载请求的开始回调)来跟踪所有上传尝试(如果文件已经上传)(如果此回调返回false,文件上载请求被中止)。