Что делать если в Dropzone.js автозагрузка происходит сама если файл выдает ошибку?

В Dropzone.js автозагрузка файла происходит только в том случае, если файл успешно прошёл все проверки и не вызвал ошибку. Однако, вы можете настроить поведение Dropzone.js, чтобы файлы, которые вызывают ошибку, не автозагружались.

Первым шагом является настройка опций Dropzone.js. Для этого вы можете использовать метод Dropzone.options, который позволяет определить конкретные настройки для вашего экземпляра Dropzone. В опциях вы можете указать какие типы ошибок должны быть обработаны и как на них реагировать.

Dropzone.options.myDropzone = {
  init: function() {
    this.on("error", function(file, errorMessage) {
      // Обработчик ошибок
      console.log(errorMessage);
    });
  },
  autoProcessQueue: true, // Включение автозагрузки
  /* Другие опции */
};

Выше приведен пример, в котором опция autoProcessQueue установлена в true, чтобы включить автозагрузку файлов. При этом задан обработчик события error, который вызывается каждый раз, когда происходит ошибка при загрузке файла. В обработчике вы можете определить дальнейшее поведение при возникновении ошибки, например, отображение сообщения об ошибке или скрытие кнопки загрузки для данного файла.

Dropzone.options.myDropzone = {
  init: function() {
    this.on("error", function(file, errorMessage) {
      // Обработчик ошибок
      console.log(errorMessage);

      // Прекратить автозагрузку файла, если произошла ошибка
      this.options.autoProcessQueue = false;

      // Скрыть кнопку загрузки для этого файла
      file.previewElement.querySelector(".dz-upload").style.display = 'none';

      // Отобразить сообщение об ошибке
      file.previewElement.querySelector(".dz-error-message").textContent = errorMessage;
    });
  },
  autoProcessQueue: true, // Включение автозагрузки
  /* Другие опции */
};

В данном примере, когда происходит ошибка при загрузке файла, мы устанавливаем опцию autoProcessQueue в false, чтобы прекратить автозагрузку. Затем скрываем кнопку загрузки для данного файла и отображаем сообщение об ошибке.

Если вы хотите, чтобы файл, вызывающий ошибку, не отображался в превью вообще, вы можете использовать метод removeFile для удаления файла из Dropzone.

Dropzone.options.myDropzone = {
  init: function() {
    this.on("error", function(file, errorMessage) {
      // Обработчик ошибок
      console.log(errorMessage);

      // Удалить файл из Dropzone
      this.removeFile(file);
    });
  },
  autoProcessQueue: true, // Включение автозагрузки
  /* Другие опции */
};

В этом примере, когда происходит ошибка при загрузке файла, мы вызываем метод removeFile для удаления файла из Dropzone, и он не будет отображаться в превью.

Надеюсь, это поможет вам настроить поведение Dropzone.js при возникновении ошибок при загрузке файлов.