【问题标题】:Upload multiple files with Multer ? (Nodejs)使用 Multer 上传多个文件? (节点)
【发布时间】:2016-08-21 06:46:00
【问题描述】:

我只是想不出为什么我的代码在下面有什么问题。我尝试上传由简单上传器 (JADE) 提供的多个文件:

 input#upload-gallery(type='file', multiple="multiple", name='picture')

和一些 javascript 控制器,每次用户向上传器插入文件时发送数据

   $("#upload-gallery").on('change', function(){
        var files = $(this).get(0).files;
        if (files.length > 0) {
            var formData = new FormData();

            for (var i = 0; i < files.length; i++) {
                var file = files[i];
                formData.append('pictures', file, file.name);
            }

            $.ajax({
                url          : '/upload/pictures',
                type         : 'POST',
                data         : formData,
                processData  : false,
                contentType  : false,
                success      : function (links) {

                }
            });
        }
    })

这是服务器部分:

var multer          = require('multer');
var upload          = multer({dest: "./gallery"});
...
...
app.post('/upload/pictures', upload.any(), function(req, res, next){
      console.log(req.files)  // <-- it always return [] array
});

问题是req.files 总是返回一个空数组。我可以让它上传单个文件就好了,但我不能让它上传多个文件。那么这里有什么问题呢?

到目前为止我所尝试的:

  • formData 部分更改为formData.append('pictures[]', file, file.name); 不起作用
  • upload.any() 更改为upload.array('pcitures'),不起作用

【问题讨论】:

  • 我用你提供的代码让它为我工作。是否存在冲突的路由或表单不是 multipart/form-data?
  • 你是对的。我创建了另一个新的干净项目只是为了测试我是否有故障node 或其他东西。它有效!

标签: javascript node.js multer


【解决方案1】:

原来我有 multipartplugin 与 multer 冲突。刚刚在 app.js 中注释掉了这些

//var multipart       = require('connect-multiparty');
//app.use(multipart());

问题就解决了

【讨论】:

    猜你喜欢
    • 2019-12-06
    • 2017-08-30
    • 2016-06-25
    • 2017-01-13
    • 2017-10-20
    • 1970-01-01
    • 2019-01-26
    • 2020-05-31
    • 2017-11-12
    相关资源
    最近更新 更多