首页 > 解决方案 > Dropzone - 无法设置自定义 Dropzone.js 选项

问题描述

我正在尝试在我的 Laravel 网站上使用Dropzone.js 。

这是我的设置:

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没有得到尊重。

例如,我可以上传大于 1MB 的文件,我可以上传所有文件类型,即使我只想上传图片和 PDF 文件。

如果我将 this: 移到Dropzone.autoDiscover = false;之外(function () {});,则 Dropzone 元素根本不起作用。

我做错了什么?

标签: javascriptlaraveldropzone.jsdropzone

解决方案


您已将代码包含在匿名函数中但没有调用它,因此插件选项代码没有被执行。删除此匿名函数,或调用它,如下所示:

(function () {

})(); // call the function

推荐阅读