在jquery文件上传blueimp中开始全部上传

时间:2013-12-23 09:21:55

标签: jquery file-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();
            });
        }
    });
});

但是这会上传一个文件,我想上传所有已选中的文件。

4 个答案:

答案 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