I use jQuery file upload blueimp and have read
$(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();
});
}
});
});
but this uploads a single file, I want to upload all files that have been selected.
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>
your problem is that you unbind the click event on every file. you should do it on done:
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();
});
}
For upload concurrently all file you have selected, you can add the option autoUpload: true, like this:
$('#fileupload').fileupload({
url: 'url_path',
autoUpload: true
})
Reference: https://github.com/blueimp/jQuery-File-Upload/wiki/Options
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With