0

我正在尝试设置 Dropzone.js 以同时处理多个文件,但也以 1mb 块的形式上传每个文件。我似乎无法为此找到合适的 DZ 配置。

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

4

1 回答 1

1

问题: “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;
});
于 2019-05-17T18:35:45.703 回答