我使用jQuery文件上传blueimp并已阅读
$(function () {
$('#fileupload').fileupload({
dataType: 'json',
done: function (e, data) {
$.each(data.result, function (index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
},
add:function (e, data) {
$("#uploadBtn").off('click').on('click',function () {
data.submit();
});
}
});
});
但是这会上传一个文件,我想上传所有已选中的文件。
答案 0 :(得分:10)
var pendingList: [];
var sendAll: function () {
pendingList.forEach(function (data) { data.submit(); });
pendingList = [];
};
$('#fileupload').fileupload({
url: 'url_path',
autoUpload: false,
add: function (e, data) {
pendingList.push(data);
},
});
<button onclick="sendAll()">Start Upload All</button>
答案 1 :(得分:8)
您的问题是您解除了每个文件上的click事件的绑定。你应该完成它:
done: function (e, data) {
$("#uploadBtn").off('click')
$.each(data.result, function (index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
},
add: function (e, data) {
$("#uploadBtn").on('click',function () {
data.submit();
});
}
答案 2 :(得分:2)
下面的代码可能很有用。
$('#fileupload').fileupload({
dataType: 'json',
add: function (e, data) {
var that = this;
$.blueimp.fileupload.prototype.options.add.call(that, e, data);
$("#up_btn").on('click', function () {
data.submit();
});
},
});
答案 3 :(得分:1)
要同时上传您选择的所有文件,您可以添加选项autoUpload:true,如下所示:
$('#fileupload').fileupload({
url: 'url_path',
autoUpload: true
})
参考:https://github.com/blueimp/jQuery-File-Upload/wiki/Options