0
NodeJSアプリケーションでbody-parser、express、およびmulterを使用しています。 サインアップフォームにImageといくつかのテキストフィールドをアップロードする必要があります。私はこれに対してmulterを使用しています。私はここで提案したのと全く同じことを試しました - https://stackoverflow.com/questions/35847293/uploading-a-file-and-passing-a-additional-parameter-with-multerノードJSのmulterを使用した画像とテキストのアップロード
しかし、私はreq.bodyに空のオブジェクトを取得します。 ファイルは宛先フォルダに作成されますが、req.files.forEachメソッドは空の結果を記録します。ここで
は私のコードです:
HTMLのフロントエンドコード
<form id="form" enctype="multipart/form-data" action="/profile" method="post" >
<label>Name</label>
<input type="text" placeholder=" Name" name="name" id="name" class="form-control">
<label>Logo</label>
<input type="file" placeholder="Logo" name="logo" id="logo" class="form-control">
<button id="addform" type="submit" class="btn btn-primary">Add Profile</button>
</form>
サーバーサイドコード:ノードで
app.post('/profile', function(req, res) {
var storage = multer.diskStorage({
destination: __dirname+'/file/uploads/'
});
var upload = multer({ storage : storage}).any();
upload(req,res,function(err) {
if(err) {
console.log(err);
return res.end("Error uploading file.");
} else {
console.log(req.body);
console.log(req.files);
req.files.forEach(function(f) {
console.log(f);
// and move file to final destination...
});
res.end("File has been uploaded");
}
});
});
ログ出力:
{}
[]
私は正確なコードをコピーして試しました。また、本体とファイルがコンソールに記録されていても、すべてが正常に動作しています。だから、おそらく他のコードの問題?多分ミドルウェアですか?お役に立てれば。 –
はあなたの問題を解決しましたか? – Sagar
はい、実際には、ボタンのクリックを参照しながら '#'を追加するのを忘れていました。 – Anirudh