一个按钮触发多个Dropzone上传

时间:2019-07-08 09:34:09

标签: javascript dropzone.js

我有一个简单的功能,用户可以提交他/她过去和当前项目的详细信息,并且我正在使用dropzone,以便用户可以将相关文档上载到他们的项目。因此,基本上,他们可以根据需要添加许多项目

当前,我将放置区设置为<h2 style="color: red;">{{hasErrors}}</h2> ,因此当用户放置文件时,该文件将自动上传。

autoProcessQueue: true,

我想要的所有dropzone实例都将通过一个单按钮触发器开始上传所有文件。

我的问题是,因为用户可以动态添加项目,所以单击按钮时不会触发拖放区

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,
        },
$("#button").click(function (e) {
    e.preventDefault();
    dynamicDropzone.processQueue();
});

1 个答案:

答案 0 :(得分:4)

您需要保留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