Ich benutze Body-Parser, Express und Multer in meiner NodeJS App. Ich muss Image und einige Textfelder in Anmeldeform hochladen. Ich benutze Multer dafür, ich habe genau die gleiche Sache hier vorgeschlagen - https://stackoverflow.com/questions/35847293/uploading-a-file-and-passing-a-additional-parameter-with-multerHochladen von Bild und Text mit Multer in Knoten JS
Aber ich bekomme leere Objekt in req.body. Dateien werden im Zielordner erstellt, req.files.forJede Methoden protokolliert jedoch leere Ergebnisse.
ist hier mein Code:
HTML-Frontend Code
<form id="form" enctype="multipart/form-data" action="/profile" method="post" >
<label>Name</label>
<input type="text" placeholder=" Name" name="name" id="name" class="form-control">
<label>Logo</label>
<input type="file" placeholder="Logo" name="logo" id="logo" class="form-control">
<button id="addform" type="submit" class="btn btn-primary">Add Profile</button>
</form>
Server Side-Code:
app.post('/profile', function(req, res) {
var storage = multer.diskStorage({
destination: __dirname+'/file/uploads/'
});
var upload = multer({ storage : storage}).any();
upload(req,res,function(err) {
if(err) {
console.log(err);
return res.end("Error uploading file.");
} else {
console.log(req.body);
console.log(req.files);
req.files.forEach(function(f) {
console.log(f);
// and move file to final destination...
});
res.end("File has been uploaded");
}
});
});
Protokollausgabe in Knoten:
{}
[]
Ich habe den genauen Code kopiert und es versucht. Und alles funktioniert gut mit dem Körper und der Datei, die auf der Konsole protokolliert wird. Also, vielleicht das Problem mit anderem Code? vielleicht eine Middleware? hoffe das hilft. –
ist Ihr Problem gelöst? – Sagar
Ja, eigentlich habe ich vergessen, '#' hinzuzufügen, während der Klick auf die Schaltfläche referenziert wird. – Anirudh