接受多张限制图片

Multer limit images accepted

我正在使用 Multer 和 Multer S3 来允许用户在 Node 项目上上传图像。我希望用户能够上传 3 张图片,无论它们的大小如何,但不能再多了。如果用户尝试 select 说出 6 张图片,我会收到此错误页面:

Error: Unexpected field
   at makeError

我如何更改下面的代码以不允许用户 select/upload 超过 3 张图像 and/or 以更好的方式处理错误。

部分代码:

router.post("/", upload.array('image', 3), function(req, res, next){

          var filepath = undefined;

          var filepath2 = undefined;

          var filepath3 = undefined;

        if(req.files[0]) {
            filepath = req.files[0].key;
        } 

          if(req.files[1]) {
            filepath2 = req.files[1].key;
        } 

         if(req.files[2]) {
            filepath3 = req.files[2].key;
        }.....

更新:

我添加了这个,现在如果用户尝试上传超过 3 个,我会进入 "too many files" 错误页面。现在我只需要弄清楚如果文件太多时如何重定向。

  var upload = multer({
    limits : { files: 3 },

我玩过 multer,这是我能够开始工作的东西。

像这样定义您的 multer 设置

var upload = multer().array('image', 3);

然后把你的函数修改成这样,

router.post("/", function(req, res, next){
   upload(req, res, function (err) {
        if (err) {
           //redirect your user here ...
           return;
        }

        //no multer error proceed with your normal operation ...

   })
});