gpt4 book ai didi

jquery - 为什么 Blueimp 的 JQuery 文件上传会添加所有上一个文件。选定的文件,即使选项 [replaceFileInput : false] and [maxNumberOfFiles: 1] are set on init?

转载 作者:行者123 更新时间:2023-12-03 22:39:35 25 4
gpt4 key购买 nike

我只有普通形式,带有一些输入字段和一个文件输入字段。我使用 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
}
});
});

我在这里找到的解决方案( How to upload a file only once with blueimp file upload plugin? )似乎不是最好的方法(我认为它很脏),因为仅仅解除点击事件的绑定(bind)仍然不能解决收集所有先前选择的文件的问题(有点像内存泄漏)

选项 maxNumberOfFiles: 1 对我不起作用。

最佳答案

我遇到了同样的问题,我的解决方案是取消绑定(bind)按钮的单击事件,并在调用添加事件时将其绑定(bind)回来。试试这个。

...

add: function (e, data) {

$('#upload_button').unbind('click');
data.context = $('#upload_button').bind('click', function () {
...
data.submit();
}
}

关于jquery - 为什么 Blueimp 的 JQuery 文件上传会添加所有上一个文件。选定的文件,即使选项 [replaceFileInput : false] and [maxNumberOfFiles: 1] are set on init?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16346158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com