开始上传所有jQuery文件上传蓝色印象。

12

我使用 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();
            });
        }
    });
});

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


你的表单代码主要是输入部分吗?你将其设置为<input type="file" name="files[]" multiple>了吗?你也看过他们的API细节吗? - Simon Davies
我已经阅读了API,但是由于我的英语不好,无法理解,请帮忙解释一下。 - user3129040
你解决了你的问题吗? - Igor Martins
3个回答

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>

那是我唯一能想到的方法。而且它有效。 - philw

8
你的问题在于你在每个文件上取消了点击事件绑定。你应该在完成时执行操作:
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();
            });
        }

3
这里的"point"是说,对单个文件调用data.submit()将上传该文件,而通过在一个按钮(#uploadBtn)上调用data.submit()对所有文件进行调用,它会将它们全部添加到队列中并依次上传。 - Vitani

1

1
这个答案是错误的,autoUpload选项会在选择文件时触发上传。问题是关于在按钮按下时上传多个文件。 - Mir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接