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);
};
問題は、Fiddler を使用して監視すると表示されるため、Content-Type ヘッダーに「multipart/form-data」ではなく「application/x-www-form-urlencoded」を指定してフォームが送信されていることだと思います。リクエストですが、理由がわかりません。誰でもこれに光を当てることができますか?