Начало Загрузить все в файл jquery upload blueimp

Я использую 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();
            });
        }
    });
});

но это загружает один файл, я хочу загрузить все файлы, которые были выбраны.

Ответ 1

Ваша проблема заключается в том, что вы отключаете событие 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

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>

Ответ 3

ниже код может быть полезным.

$('#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();
        });
    },
});

Ответ 4

Для одновременной загрузки всего выбранного файла вы можете добавить опцию autoUpload: true, например:

$('#fileupload').fileupload({
    url: 'url_path',
    autoUpload: true
})

Ссылка: https://github.com/blueimp/jQuery-File-Upload/wiki/Options