如何设置Dropzone.js同时上传多个和分块上传?
How to set up Dropzone.js to upload multiple and upload in chunks at the same time?
我正在尝试设置 Dropzone.js 以同时处理多个文件,但也以 1mb 的块上传每个文件。我似乎找不到合适的 DZ 配置。
当我将 "uploadMultiple: true" 添加到 DZ 的工作分块实现时,Chrome 抛出此错误:"Uncaught Error: You cannot set both: uploadMultiple and chunking."
问题: "autoProcessQueue" 设置为 "false" 因为我只想在用户点击 "submit" 按钮时进行处理。即使 "uploadMultiple" 未设置为 true,只要队列为 auto-processed.
,Dropzone 将上传多个文件(可能是连续而不是同时)
解决方案:
一旦文件的所有块都上传完毕,Dropzone.js 调用 "chunksUploaded"。在第一个文件成功上传其所有块后,将 "autoProcessQueue" 选项重置为 "true." 后 "queueComplete," 将其设置回 "false" 以准备下一次上传。
在此处查看答案以了解 chunksUploaded 回调,在使用它连接上传后的块的上下文中:
查看此线程的末尾以转动 on/off 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;
});
我正在尝试设置 Dropzone.js 以同时处理多个文件,但也以 1mb 的块上传每个文件。我似乎找不到合适的 DZ 配置。
当我将 "uploadMultiple: true" 添加到 DZ 的工作分块实现时,Chrome 抛出此错误:"Uncaught Error: You cannot set both: uploadMultiple and chunking."
问题: "autoProcessQueue" 设置为 "false" 因为我只想在用户点击 "submit" 按钮时进行处理。即使 "uploadMultiple" 未设置为 true,只要队列为 auto-processed.
,Dropzone 将上传多个文件(可能是连续而不是同时)解决方案: 一旦文件的所有块都上传完毕,Dropzone.js 调用 "chunksUploaded"。在第一个文件成功上传其所有块后,将 "autoProcessQueue" 选项重置为 "true." 后 "queueComplete," 将其设置回 "false" 以准备下一次上传。
在此处查看答案以了解 chunksUploaded 回调,在使用它连接上传后的块的上下文中:
查看此线程的末尾以转动 on/off 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;
});