用Multer上传多个文件? (的NodeJS)

时间:2016-08-21 06:46:01

标签: javascript node.js multer

我无法弄清楚为什么我的代码如下。我尝试上传由简单上传器(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'),不起作用

1 个答案:

答案 0 :(得分:0)

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

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

问题已经消失

相关问题