2017-06-06 15 views
1

私はMulterとMulter S3を使って、ユーザーがノードプロジェクトに画像をアップロードできるようにしています。サイズに関係なく3つの画像をアップロードできるようにしたいと思っています。multer limit images accepted

Error: Unexpected field 
    at makeError 

私は、ユーザーが/選択する3枚の以上の画像をアップロードおよび/または中にエラーを処理することができないように以下の私のコードを変更する方法をユーザが選択しようとした場合、私はこのエラーページを取得する6枚の画像を言いますもっといい方法。

部分コード:

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以上のものをアップロードしようとすると、今、私は「あまりにも多くのファイル」エラーページに着陸。これで、あまりにも多くのファイルをリダイレクトする方法を理解する必要があります。

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

このhttps://github.com/expressjs/multer#limitsをご覧ください。これはあなたが探しているものですか? –

+0

ありがとう@SamipSuwal!うん、私はファイルフィールドの最大数を実装しようとしましたが、同じエラーが発生し続けました。 Hmm – AndrewLeonardi

+0

ユーザが3つ以下のファイルを更新しようとすると、あなたのコードは動作しますか? –

答えて

0

私はマルチターで遊んだので、ここで働くことができました。

この

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

のようなあなたのmulterの設定を定義しますそれから私はこれが役に立てば幸い

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 ... 

    }) 
}); 

、これにあなたの関数を変更します。

+0

これは実際に私が理解しようとしてきたものですが、構文を理解できませんでした!私はそれを試してみましょう!ありがとうございました! – AndrewLeonardi