Ошибки dropzone.js console.log в недопустимом файле MIME-типа - PullRequest
0 голосов
/ 15 июня 2019

Моя реализация dropzone имеет следующие характеристики:

  • позволяет 3 файла максимум
  • имеет ограничение по размерам ширины и высоты
  • имеет ограничение на размер файла
  • проверяет MIME на сервере и, если это не изображение, я запускаю removeFile (файл);

Чтобы проверить это, я переименовал файл .pdf в .jpeg и использовал его для тестирования.

Файл успешно удален и все остальное работает за исключением того, что я получаю эти два сообщения console.log всякий раз, когда загружаю файл, который не проходит проверку MIME на сервере.

Почему генерируются эти ошибки console.log и что я должен изменить, чтобы их предотвратить?

GET http://localhost/dropzone_devel/[object%20Event] 404 (Not Found)                [object%20Event]:1
POST http://localhost/dropzone_devel/upload.php 500 (Internal Server Error)         dropzone.min.js:2 

снимок экрана ошибок console.log при загрузке неверного файла MIME

Я использую новейшую версию dropzone.js и прочитал все посты в этой библиотеке вики и форумах без удачи.

Ниже приведены соответствующие примеры используемого кода:

○ При INIT делает миниатюры для файлов на сервере:

$.ajax({
    type: 'POST',
    url: 'upload.php',
    data: {action: 2},
    dataType: 'json',
    success: function (response) {  
        $.each(response, function (key, val) {
            var mockFile = {name: val.name, size: val.size, accepted: true};
            myDropzone.emit("addedfile", mockFile);
            myDropzone.emit("thumbnail", mockFile, val.path);
            myDropzone.emit("complete", mockFile);
            myDropzone.files.push(mockFile);
        });
    }
});

○ Проверяются максимально допустимые размеры по ширине и высоте:

this.on("thumbnail", function (file) {
    if (file.rejectDimensions !== undefined || file.acceptDimensions !== undefined) {
        if (file.width > maxImageWidth || file.height > maxImageHeight) {
            file.rejectDimensions()
            //this.removeFile(file);
        } else {
            file.acceptDimensions();
        }
    }
});

○ Другие опции:

addRemoveLinks: true,
         uploadMultiple: false,
         maxFiles: 3,
         maxFilesize: 2,
         acceptedFiles: 'image/*'

○ upload.php возвращает json или ошибку, если не изображение jpeg или png:

if (in_array($mime, ["image/jpeg", "image/png"], true)) {

    move_uploaded_file($_FILES["file"]["tmp_name"], $target_dir . $_FILES['file']['name']);

    $upload_response = array('filename' => $_FILES['file']['name'], 'mime' => $mime);
    echo json_encode($upload_response);
    exit;
} else {
    header('HTTP/1.1 500 Internal Server Error');
    header('Content-type: text/plain');
    $msg = "File type '$mime' is not allowed.";
    exit($msg);
}

○ При возникновении ошибки файл удаляется:

this.on("error", function (file, message, xhr) {
    this.removeFile(file);        
});

Ожидаемый результат: ошибки console.log отсутствуют.

...