为什么 dropzoneJS 调整大小选项没有影响?

时间:2021-04-25 17:23:25

标签: dropzone.js ruby-on-rails-6

我在带有 ActiveStorage 和 Stimulus 的 rails 6 应用程序中使用放置区。但是,resizeHeight 和 resizeQuality 似乎对上传的图片没有任何影响。

在下图所示的设置中,我希望最终图像很小且质量较低。但是,我取回了最初附加的相同图像。完全没有压缩或大小变化。

另外,我很好奇 DropzoneJS 是否会升级?或者,如果默认情况下它不会升迁?另外,跳过非图像的调整大小选项是否足够聪明?文档没有指定。

我的 Dropzone_controller 如下所示:

import { Controller } from "stimulus"
import Dropzone from "dropzone"
import 'dropzone/dist/min/dropzone.min.css'
import 'dropzone/dist/min/basic.min.css'
import { DirectUpload } from "@rails/activestorage"

export default class extends Controller {
  static targets = ["input"]

  connect() {
    Dropzone.autoDiscover = false

    this.inputTarget.disable = true
    this.inputTarget.style.display = "none"
    const dropzone = new Dropzone(this.element, {
      url: '/',
      maxFiles: 10,
      maxFilesize: 6,
      addRemoveLinks: true,
      resizeHeight: 50,
      resizeQuality: 0.1,
      autoQueue: false
    })

    dropzone.on("addedfile", file => {
      setTimeout(() => {
        if (file.accepted) {
          const upload = new DirectUpload(file, this.url)
          upload.create((error, blob) => {
            this.hiddenInput = document.createElement("input")
            this.hiddenInput.type = "hidden"
            this.hiddenInput.name = this.inputTarget.name
            this.hiddenInput.value = blob.signed_id
            this.inputTarget.parentNode.insertBefore(this.hiddenInput, this.inputTarget.nextSibling)
            dropzone.emit("success", file)
            dropzone.emit("complete", file)
          })
        }
      }, 500)
    })
  }

  get url() {
    return this.inputTarget.getAttribute('data-direct-upload-url')
  }
}

谢谢!!!!

0 个答案:

没有答案