Как настроить Dropzone.js для одновременной загрузки нескольких файлов? - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь настроить Dropzone.js для обработки нескольких файлов одновременно, но также загружать каждый из них по 1 МБ. Я не могу найти правильную конфигурацию DZ для этого.

Когда я добавляю «uploadMultiple: true» в мою рабочую реализацию DZ, Chrome выдает следующее сообщение об ошибке: «Uncaught Error: вы не можете установить оба: uploadMultiple и chunking».

1 Ответ

0 голосов
/ 17 мая 2019

Проблема: «autoProcessQueue» было установлено в «ложь», потому что я хотел обрабатывать только когда пользователь нажимает кнопку «отправить».Даже если для параметра uploadMultiple не задано значение true, Dropzone будет загружать более одного файла (предположительно последовательно, а не одновременно), если очередь обрабатывается автоматически.

Решение: Dropzone.js вызывает «chunksUploaded» после загрузки всех фрагментов файла.После того, как первый файл успешно загрузит все свои чанки, установите для параметра autoProcessQueue значение true.После «queueComplete» установите значение «false» при подготовке к следующей загрузке.

См. Ответ здесь, чтобы понять обратный вызов chunksUploaded, в контексте использования его для объединения фрагментов после загрузки: Как объединить фрагментированные загрузки файлов из Dropzone.js с помощью 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;
});
...