web-dev-qa-db-ja.com

multerを使用した複数のファイルのアップロードに失敗しました

ドキュメントに従った後、以下の機能を実行している空の配列を取得しました。

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();
});

単一ファイルのアップロードで。

5

Upload.array()には、フィールド名とmaxCountパラメーターが必要です。ただし、ファイルの名前を「file」とし、ミドルウェアのupload.array( 'photos'、4)を使用しています。以下の方法で試してみてください

  upload.array('file',4)

または

  upload.any();

ドキュメントを参照してください: https://github.com/expressjs/multer

12
Nalla Srinivas