2016-08-21 1 views
1

Ich kann einfach nicht verstehen, was falsch ist, warum meine Codes unten. Ich versuche, um mehrere Dateien hochladen, die durch einen einfachen Uploader (JADE) gegeben:Mehrere Dateien mit Multer hochladen? (Nodejs)

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

und einige Javascript-Controller, Daten ein Benutzer Insert-Dateien jedes Mal senden

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

       } 
      }); 
     } 
    }) 

Hier ist der Serverteil Uploader :

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

Das Problem besteht darin, dass immer einen leeren req.files Array zurück. Ich kann es schaffen, einzelne Dateien hochzuladen, aber ich kann nicht mehrere Dateien hochladen. Also was ist hier falsch?

Was ich versucht habe, so weit:

  • Änderung formData Teil formData.append('pictures[]', file, file.name); Arbeit nicht
  • ändern upload.any()-upload.array('pcitures'), funktioniert nicht
+0

ich die Arbeit mit dem Code, den Sie zur Verfügung gestellt hatte für mich hat es weg. Gibt es eine widersprüchliche Route oder ist das Formular nicht multipart/form-data? – Aldose

+0

Sie haben Recht. Ich erstelle ein weiteres neues sauberes Projekt, nur um zu testen, ob ich eine Fehlfunktion "Knoten" oder etwas anderes habe. Es klappt! – DennyHiu

Antwort

0

Es stellte sich heraus, dass ich multipart Plugin haben, das ist im Konflikt mit multer. in app.js diese aus nur kommentiert

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

und das Problem ist

+0

cool cool, froh, ich könnte helfen – Aldose

Verwandte Themen