2016-08-21 21 views
1

私はちょうどなぜ私のコードの下に何が間違っているか考え出していない。ここでは、サーバーの一部だMulterで複数のファイルをアップロードしますか? (Nodejs)

$("#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) { 

       } 
      }); 
     } 
    }) 

をアップローダするたびにユーザーの挿入ファイルをデータを送信するために、

input#upload-gallery(type='file', multiple="multiple", name='picture') 

といくつかのjavascriptコントローラ:私は、単純なアップローダー(JADE)によって与えられた複数のファイルをアップロードしよう:

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は常に空の配列を返します。私は1つのファイルをアップロードするためにそれを作ることができますが、複数のファイルをアップロードすることはできません。ここで何が間違っていますか?

私がこれまで試してみました何:

  • 変更formData一部upload.array('pcitures')に変更upload.any()
  • formData.append('pictures[]', file, file.name);に動作していない、
+0

を行っています。競合するルートがあるか、フォームがマルチパート/フォームデータではありませんか? – Aldose

+0

あなたはそうです。私は誤ったノードやその他のものがあるかどうかをテストするために別の新しいクリーンなプロジェクトを作成します。できます! – DennyHiu

答えて

0

を動作しませんが、私はあるmultipartプラグインが判明しますmulterと競合しています。ただ、app.js

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

でこれらをコメントアウトし、問題は、私はそれはあなたが提供したコードで私のために働いてしまった

+0

クールクール、うれしい – Aldose

関連する問題