如何设置Dropzone.js上载多个并同时上载多个块?

时间:2019-05-17 15:14:06

标签: dropzone.js chunking multifile-uploader

我试图将Dropzone.js设置为同时处理多个文件,但还要以1mb为单位上传每个文件。我似乎找不到合适的DZ配置。

当我在DZ的工作分块实现中添加“ uploadMultiple:true”时,Chrome抛出此错误:“未捕获的错误:您不能同时设置:uploadMultiple和分块。”

1 个答案:

答案 0 :(得分:0)

问题:“ autoProcessQueue”设置为“ false”,因为我只想在用户点击“提交”按钮时进行处理。即使未将“ uploadMultiple”设置为true,只要自动处理队列,Dropzone都会上传多个文件(大概是连续而不是同时上传)。

解决方案: 文件的所有块均已上传后,Dropzone.js就会调用“ chunksUploaded”。在第一个文件成功上传所有块之后,将“ autoProcessQueue”选项重置为“ true”。在“ queueComplete”之后,将其设置回“ false”以准备下一次上传。

在上传后使用它来连接块的上下文中,请参见此处的答案以了解chunksUploaded回调:How to concatenate chunked file uploads from Dropzone.js with PHP?

有关打开/关闭autoProcessQueue的信息,请参见此线程的结尾:https://github.com/enyo/dropzone/issues/462

JavaScript示例代码段:

(我删除了所有Dropzone和Ajax选项以突出显示相关部分

var myDropzone = new Dropzone(target, {
  chunksUploaded: function(file, done) {
    // ajax below posts to a script that merges the uploaded chunks of the current file
    $.ajax({
        success: function (data) {
          myDropzone.options.autoProcessQueue = true;
          done();
        }
     });
  }
});

myDropzone.on("queuecomplete", function() {
  myDropzone.options.autoProcessQueue = false;
});