在下面的代码中,仅调用完成事件。
<小时/>var Busboy = require('connect-busboy');
app.use(Busboy());
app.post('/fileupload', function(req, res) {
var fstream;
req.pipe(req.busboy);
req.busboy.on('error', function(err){
console.log(err);
});
req.busboy.on('field', function(fieldname, val, valTruncated, keyTruncated) {
console.log("fieldname: " + fieldname);
});
req.busboy.on('file', function (fieldname, file, filename) {
console.log("filename: " + filename);
fstream = fs.createWriteStream(__dirname + '/files/' + filename);
file.pipe(fstream);
fstream.on('close', function () {
res.redirect('back');
console.log("fileupload end");
});
});
req.busboy.on('finish', function() {
console.log('Done parsing form!');
});
});
最佳答案
您看不到任何数据的原因是您已经在使用 multer
模块,该模块还解析 multipart/form-data
请求,将文件保存到磁盘。如果您不使用 multer
并且想要按照代码中所示手动使用 busboy
,则需要删除 app.use(multer() );
行。
关于node.js - 服务员不开火场,文件事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26437025/