Dropzone-无法设置自定义Dropzone.js选项

时间:2019-02-27 12:05:40

标签: javascript laravel dropzone.js dropzone

我正在尝试在我的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没有受到尊重。

例如,即使我只希望能够上传图像和PDF文件,我也可以上传大于1MB的文件,可以上传所有文件类型。

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

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您已经将代码括在匿名函数中,但是没有调用它,因此不会执行插件选项代码。要么删除此匿名函数,要么调用它,就像这样:

(function () {

})(); // call the function

答案 1 :(得分:0)

改为尝试:

using System;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            comboBoxAnimals.Items.Add("dog");
            comboBoxAnimals.Items.Add("cat");
            comboBoxAnimals.Items.Add("mouse");
            comboBoxAnimals.SelectedIndex = 1;

            txtTimes.Text = "1";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string selectedAnimal = comboBoxAnimals.SelectedItem.ToString();

            int times = int.Parse(txtTimes.Text);
            var message = string.Concat(Enumerable.Repeat(selectedAnimal, times));
            MessageBox.Show(message);
        }
    }
}