【问题标题】:Trigger Multiple Dropzone Upload in a single button在一个按钮中触发多个 Dropzone 上传
【发布时间】:2019-07-08 09:34:09
【问题描述】:

我有一个简单的功能,用户可以提交他/她过去和当前项目的详细信息,我正在使用 dropzone,以便用户可以将相关文档上传到他们的项目。所以基本上,他们可以随心所欲地添加许多项目

目前我将dropzone设置为autoProcessQueue: true,,所以当用户drop一个文件时,它会自动上传。

var dynamicDropzone = new Dropzone(element, {
        autoProcessQueue: true,
        addRemoveLinks: true,
        parallelUploads: 1,
        maxFilesize: 5,
        acceptedFiles: 'image/*,application/pdf',
        dictDefaultMessage: '<div class="dz-default dz-message"></div>',
        url: tempURL + 'upload.php',
        params: {
            'userID': current_user_id,
        },

我想要的是所有 dropzone 实例都将在 1 个单按钮触发器中开始上传所有文件。

我的问题是因为用户可以动态添加项目,所以点击按钮时dropzones不会触发上传

$("#button").click(function (e) {
    e.preventDefault();
    dynamicDropzone.processQueue();
});
button type="submit" id="button" class="btn btn-primary">Submit</button>

【问题讨论】:

    标签: javascript dropzone.js


    【解决方案1】:

    您需要保留autoProcessQueue: false,以便Dropzone在您放置文件时不会自动上传文件。

    然后单击按钮,您需要告诉 Dropzone 实例处理队列,如下所示:

    $("#button").click(function (e) {
        e.preventDefault();
        dynamicDropzone1.processQueue(); // process dropzone instance 1
        dynamicDropzone2.processQueue(); // process dropzone instance 2
    });
    

    这里已经有更详细的答案:https://stackoverflow.com/a/46732882/9354303

    【讨论】:

    • ``` dynamicDropzone1.processQueue(); // 处理 dropzone 实例 1 dynamicDropzone2.processQueue(); ```你好!我怎样才能使这个“动态”,因为用户可以添加 20 个或更多的项目
    • 我成功了。我将实例放在一个数组中并循环并在每个实例上触发 processQueue
    猜你喜欢
    • 2021-07-18
    • 2014-12-10
    • 2020-08-01
    • 2015-03-17
    • 2010-11-02
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 2018-09-14
    相关资源
    最近更新 更多