【问题标题】:How to increase file upload size for dropzonejs with vuejs3如何使用 vue js 3 增加 dropzone js 的文件上传大小
【发布时间】:2021-08-22 19:01:03
【问题描述】:

我使用 dropzonejs 制作了一个 vue dropzone 组件。该组件可以工作,但是我无法将 dropzone 配置为上传大于 256mb 的文件,我认为这是默认设置。出于测试目的,我放了 1mb(减少最大文件大小)。

我还尝试将我的配置代码放入mounted beforeMount、create等中。

我的代码

<template>
  <div class="dropzone-container">
    <form
      :action="uploadurl"
      class="dropzone drop-area"
      enctype="multipart/form-data"
      id="myDropzone"
      ref="myDropzone"
      :key="`dz-${dzkey}`"
    >
      <input type="hidden" name="path" :value="currentPath" />
    </form>
    <button class="finish-button" @click="finishUpload">Finish Upload</button>
  </div>
</template>

<script>
// import * as Dropzone from "dropzone/dist/min/dropzone.min.js";
import FileHandling from "../fileHandling";
const Dropzone = require("dropzone/dist/dropzone.js");
Dropzone.autoDiscover = true;
export default {
  name: "DropZone",
  props: ["currentPath"],
  data() {
    return {
      uploadurl: FileHandling.SendForUpload(),
      dzkey: 0,
    };
  },
  methods: {
    finishUpload() {
      this.$refs.myDropzone.dropzone.removeAllFiles();
      this.$emit("finishedUpload");
    },
    dropconfig() {
      console.log(Dropzone);
      Dropzone.options[this.$refs.myDropzone] = {
        maxFilesize: 1,
      };
    },
  },
  ready: function() {
    this.dropconfig();
  },
};
</script>

【问题讨论】:

    标签: javascript node.js vue.js vuejs3


    【解决方案1】:

    您的代码中有两个问题:

    1. 没有ready 钩子。也许你的意思是mounted

      export default {
        // ❌ ready hook does not exist
        //ready() {
        //  this.dropconfig();
        //},
      
        // ✅
        mounted() {
          this.dropconfig();
        }
      }
      
    2. Dropzone.options 是元素 ID(字符串)的映射,而不是元素实例 (HTMLElement):

      // ❌
      //Dropzone.options[this.$refs.myDropzone] = {/*...*/};
      
      // ✅ `myDropzone` is a string that matches element ID in template
      Dropzone.options.myDropzone = {/*...*/};
      

    修复这些问题应该可以让您的 maxFilesize 配置生效。

    【讨论】:

    • 我对你不能在 vue 中使用 select by id 这一事实感到困惑,这就是我使用 refs 的原因。谢谢你这个工作但是我不得不使用Dropzone.Dropzone.options.myDropzone而不是Dropzone.toptions.myDropzone。无论如何,我能够使它工作,谢谢。
    猜你喜欢
    • 2017-05-12
    • 2015-09-29
    • 1970-01-01
    • 2014-02-09
    • 2018-08-22
    • 2018-05-13
    • 1970-01-01
    • 2019-01-26
    相关资源
    最近更新 更多