Dropzone - Невозможно установить пользовательские параметры Dropzone.js - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь использовать Dropzone.js на моем веб-сайте Laravel.

Это мои настройки:

index.blade.php:

<form action="/documents" method="POST" class="dropzone" id="my-dropzone" enctype="multipart/form-data">
  @csrf
</form>

И в моем файле app.js ниже приведен код:

window.Dropzone = require('dropzone');

(function () {
    Dropzone.autoDiscover = false;
    Dropzone.options.myDropzone = {
        paramName: "file", // The name that will be used to transfer the file
        maxFilesize: 1, // MB
        acceptedFiles: 'image/*,application/pdf',
        parallelUploads: 8,
        addRemoveLinks: false,
        createImageThumbnails: false,
        autoProcessQueue: true,
        previewTemplate: document.getElementById('dropzone-preview-template').innerHTML,

        accept: function (file, done) {
            console.log(file.name)
        },

    };
});

Фактический элемент Dropzone появляется на странице, и я могу использовать его для загрузки файлов.Однако мои Dropzone.options не соблюдаются.

Например, я могу загружать файлы размером более 1 МБ, я могу загружать все типы файлов, даже если я хочу только иметь возможностьзагрузить изображения и файлы PDF.

Если переместить это: Dropzone.autoDiscover = false; за пределы (function () {});, элемент Dropzone вообще не будет работать.

Что я делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

попробуйте так вместо этого:

Dropzone.autoDiscover = false;

var myDropzone = new Dropzone("#dropzone", {
  paramName: "file", // The name that will be used to transfer the file
  maxFilesize: 1, // MB
  acceptedFiles: "image/*,application/pdf",
  parallelUploads: 8,
  addRemoveLinks: false,
  createImageThumbnails: false,
  autoProcessQueue: true,
  previewTemplate: document.getElementById("dropzone-preview-template")
    .innerHTML,

  accept: function(file, done) {
    console.log(file.name);
  }
});
0 голосов
/ 27 февраля 2019

Вы окружили свой код анонимной функцией, но не вызываете ее, поэтому код параметров плагина не выполняется.Либо удалите эту анонимную функцию, либо вызовите ее так:

(function () {

})(); // call the function
...