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
TeilformData.append('pictures[]', file, file.name);
Arbeit nicht - ändern
upload.any()
-upload.array('pcitures')
, funktioniert nicht
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
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