Dropzone - 无法设置自定义 Dropzone.js 选项
Dropzone - Can't set custom Dropzone.js options
我正在尝试在我的 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文件。
如果我将此 Dropzone.autoDiscover = false;
移到 (function () {});
之外,Dropzone 元素根本不起作用。
我做错了什么?
您将您的代码包围在一个匿名函数中但没有调用它,因此插件选项代码没有被执行。要么删除这个匿名函数,要么像这样调用它:
(function () {
})(); // call the function
试试这样:
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);
}
});
我正在尝试在我的 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文件。
如果我将此 Dropzone.autoDiscover = false;
移到 (function () {});
之外,Dropzone 元素根本不起作用。
我做错了什么?
您将您的代码包围在一个匿名函数中但没有调用它,因此插件选项代码没有被执行。要么删除这个匿名函数,要么像这样调用它:
(function () {
})(); // call the function
试试这样:
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);
}
});