나는 익스프레스 4.0 간단한 파일 업로드 메커니즘 작업을 진행하려고 해요하지만 난 점점 계속 undefined
에 대한 req.files
에 app.post
몸. 관련 코드는 다음과 같습니다.
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
//...
app.use(bodyParser({ uploadDir: path.join(__dirname, 'files'), keepExtensions: true }));
app.use(methodOverride());
//...
app.post('/fileupload', function (req, res) {
console.log(req.files);
res.send('ok');
});
.. 및 해당 퍼그 코드 :
form(name="uploader", action="/fileupload", method="post", enctype="multipart/form-data")
input(type="file", name="file", id="file")
input(type="submit", value="Upload")
솔루션 아래 mscdex
의 응답 덕분에 대신 다음 을 사용으로 전환했습니다 .busboy
bodyParser
var fs = require('fs');
var busboy = require('connect-busboy');
//...
app.use(busboy());
//...
app.post('/fileupload', function(req, res) {
var fstream;
req.pipe(req.busboy);
req.busboy.on('file', function (fieldname, file, filename) {
console.log("Uploading: " + filename);
fstream = fs.createWriteStream(__dirname + '/files/' + filename);
file.pipe(fstream);
fstream.on('close', function () {
res.redirect('back');
});
});
});
./files/
앱의 홈 디렉토리에 디렉토리 를 만들어야한다는 것을 알고 싶었습니다. 그렇지 않으면 업로드 후 오류가 발생합니다.