2016-08-21 226 views
1

我只是無法弄清楚爲什麼我的代碼在下面。我試着上傳,通過一個簡單的上傳(JADE)指定的多個文件:用Multer上傳多個文件? (Nodejs)

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

和一些JavaScript控制器,每次發送數據的用戶插入的文件上傳者

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

       } 
      }); 
     } 
    }) 

這裏的服務器部分:

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總是返回一個空數組。我可以讓它上傳單個文件,但我無法上傳多個文件。那麼這裏有什麼問題?

我迄今爲止嘗試:

  • 變化formData部分formData.append('pictures[]', file, file.name);不工作
  • 變化upload.any()upload.array('pcitures'),不起作用
+0

我得到了它,我的工作與你已經提供的代碼。是否有矛盾的路線或形式不是多部分/形式數據? – Aldose

+0

你說得對。我創建了另一個新的乾淨項目,只是爲了測試我是否有故障「節點」或其他東西。有用! – DennyHiu

回答

0

原來我有multipart插件是與multer衝突。只是註釋掉這些在app.js

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

和問題走了

+0

涼爽,很高興我能幫上忙 – Aldose