我只有普通形式,带有一些输入字段和一个文件输入字段。
我使用 Blueimp 的 Jquery 文件上传插件来上传文件。如果您选择一个文件然后单击上传按钮,它似乎可以工作。但是,如果您重新选择要上传的文件,它会保存所有选择的历史记录,并在上传后将所有 XHR 发送到服务器。
我只想上传一个当前选定的文件,并非所有先前选择的文件(在文件打开对话框中)。
这是我的 js 模块来处理上传:
$(function () {
$('#upload_form').fileupload({
dataType: 'json',
autoUpload: false,
fileInput: '#filechose_button',
replaceFileInput: false,
maxNumberOfFiles: 1,
multipart: true,
add: function (e, data) {
$('#upload_button').click(function () {
$('#upload_button').attr('disabled', true);
...
data.submit();
...
});
},
done: function (e, data) {
... // successfully uploaded
},
progressall: function (e, data) {
... // update a progress bar
}
});
});
我在这里找到的解决方案(如何使用blueimp文件上传插件仅上传一次文件?)似乎不是最好的方法(我认为它很脏),因为仅仅解除点击事件的绑定仍然不能解决收集所有先前选择的文件的问题(某种内存泄漏)
选项maxNumberOfFiles: 1
对我不起作用。