multer - req.Datei immer undefined
Ist, habe ich mich auf eine Menge Antworten für dieselbe Frage, aber ich habe nicht gefunden eine funktionierende Lösung noch nicht. Ich bin versuchen, um eine web-app, mit der Sie Dateien hochladen können, mit express-und multer, und ich habe ein problem, dass keine Dateien hochgeladen werden und req.die Datei ist immer undefiniert.
Mein code unten
'use strict';
var express = require('express');
var path = require('path');
var multer = require('multer')
var upload = multer({ dest: 'uploads/' })
var app = express();
require('dotenv').load();
app.use(express.static(path.join(__dirname, 'main')));
app.post('/upload', upload.single('upl'), function (req, res, next) {
//req.file is the `avatar` file
//req.body will hold the text fields, if there were any
console.log(req.file);
res.status(204).end();
})
var port = process.env.PORT || 8080;
app.listen(port, function () {
console.log('Node.js listening on port ' + port + '...');
});
Form
<form class="uploadForm" action="/upload" method="post" enctype="multipart/formdata">
<label class="control-label">Select File</label>
<input name="upl" id="input-1" type="file" class="file">
<input type="submit" value="submit" />
</form>
Hilfe sehr geschätzt, dies treibt mich verrückt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
enctype
ist etwas falsch, es solltemultipart/form-data
stattmultipart/formdata
.Im Falle der Briefträger, versuchen Sie Folgendes:
Dieser könnte das problem beheben. Jedes mal, wenn Sie starten Sie den server, den Sie tun müssen Sie die obigen Schritte für den Aufruf der API wieder. Der Grund dafür ist, multer zurück schickt einige cookies genannt, verbinden.sid an den client, die es möglicherweise erfordern, die in der weiteren Kommunikation. Mit alten cookies wird nicht die Datei hochladen.
Legte ich MEINE (es gibt viele, die ich mir vorstellen und sicher bessere) Lösung zu helfen, viele Menschen mögen mich, weil ich gesucht habe während 1 ganzen Tag ;-(
HTML-Datei,
app.js
Ja, Ihr
enctype
ist falsch und das ist das einzige problem. Stellen Sie sicher, dass Sie korrigieren Sie Ihre enctype sonst sind Sie wahrscheinlich zu bekommen undefiniert in erf.Datei oder erf.- Dateien.Für uns war da wir waren
express-http-proxy
um einen proxy für den Aufruf vor dem multer, und wir brauchte, um dasparseReqBody: false
option, um richtig zu senden über die Datei.ie.