我正在尝试使用 node.js 和 multer 中间件实现文件上传,但它似乎不起作用。这是我的代码:
var express = require('express');
var multer = require('multer');
var done = false;
var app = express();
app.use(multer( {dest:'./uploads/',
onFileUploadStart : function(file){
console.log('File recieved:');
console.log(file);
},
onFileUploadData:function (file,data){
console.log('Data recieved');
},
onParseEnd: function(req,next){
next();
}
}));
app.use(express.static(__dirname+"/public"));
app.post('/upload',require(__dirname+'/upload.js').upload);
app.listen(3000);
我的表格如下所示:
<html>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name ="file">
<input type="submit" value="Upload selected file to server">
</form>
</body>
</html>
upload.js 看起来像这样:
exports.upload = function (req,res)
{
console.dir(req.files);
};
我认为问题在于我的表单是在 Content-Type 标头中使用“application/x-www-form-urlencoded”而不是“multipart/form-data”提交的,因为这是我使用 Fiddler 监控时出现的内容请求,但我不知道为什么。任何人都可以对此有所了解吗?