【问题标题】:can not multiple upload using dropzone and multer不能使用 dropzone 和 multer 进行多次上传
【发布时间】:2016-06-16 08:30:11
【问题描述】:

来自 dropzone.js:

如果您将选项 uploadMultiple 设置为 true,则 Dropzone 会将 [] 附加到名称。

所以对于 multer,array('file') 不起作用,因为 fieldname: 'file[0]'

如果我上传多个文件,它将是fieldname: 'file[0]' fieldname: 'file[1]' ....

我必须使用upload.any(),有没有办法在multer中做一些上传后挂钩?

【问题讨论】:

  • 对此问题的任何解决方案将不胜感激。

标签: node.js express dropzone.js multer


【解决方案1】:

请在下方使用

HTML:

<form action="/uploadImages" id="buldUploadForm" enctype="multipart/form-data" method="post">
    <div class="dropzone dz-clickable" id="uploadDropzone">
       <div class="dz-default dz-message" data-dz-message="">
          <span>Drop files here to upload</span>
       </div>
    </div>
    <br />
    <input type="submit" class="btn btn-primary" id="submitAllProcess" value="Upload Images" name="submit" />
</form>

JAVASCRIPT:

Dropzone.autoDiscover = false;

function paramNameForSend() {
   return "userParamName";
}

$(document).ready(function() {
  var myDropzone = new Dropzone("#uploadDropzone", {
    url: '/uploadImages',
    maxFilesize: 5, // MB
    maxFiles: 10,
    autoProcessQueue: false,
    uploadMultiple: true,
    paramName: paramNameForSend,
    method: 'post',
    parallelUploads: 10,
    init: function() {
        var myDropzone = this;

        $("#buldUploadForm").submit(function (e) {
            e.preventDefault();
            e.stopPropagation();
            myDropzone.processQueue();
        }); 
      }
    });
});

穆尔特:

var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads');
  }
});

var uploadMultiple = multer({ storage : storage}).array('userParamName', 10);

【讨论】:

  • 我尝试了你的方法来设置 paramName 的值,该函数返回没有 [] 的 paramName 但它失败了。我正在使用 Vue.js,有什么想法吗?
  • 你好。我没有使用 dropzone 和 vue 的组合。但是网上有实现。请检查。
猜你喜欢
  • 1970-01-01
  • 2018-09-17
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多