使用 multer 上传多个文件失败

Upload multiple file using multer failed

按照文档操作后,我得到空数组执行以下功能。

var multer  = require('multer');
var upload = multer();
    router.post('/image', upload.array('photos', 4), function(req, res) {
      var file = req.files;
      console.log('======')
      console.log(file);
      res.end();
    });

<form action="/products/image" method="post" enctype="multipart/form-data">
  <input type="file" name="file" value="upload" multiple>
  <input type="submit" value="upload">
</form>

但奇怪的是这居然有效

router.post('/image',upload.single('avatar'), function(req, res) {
  var file = req.files;
  console.log('======')
  console.log(file);
  res.end();
});

使用单个文件上传。

Upload.array() 需要字段名称和 maxCount 参数。但是您给文件的名称是 'file' 并且您正在使用中间件 upload.array('photos',4)。试试下面的方法可能有效

  upload.array('file',4)

  upload.any();

请参考文档:https://github.com/expressjs/multer