アップローダに問題があります。私はコードを持つすべてが正しいと思うし、ファイルはまだアップロードフォルダに作成されていません。また、私はconsole.log(req.files)しようとすると、空の配列を取得します。Express multer upload doesnt work
const express = require("express"),
app = express(),
multer = require("multer"),
bodyParser=require("body-parser"),
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads/');
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now() + '.' + mime.extension(file.mimetype));
}
});
var upload = multer({ storage : storage }).array('userPic');
app.post("/postFormAct", isLoggedIn, function(req, res){
upload(req,res,function(err) {
console.log(req.files);
});
});
はまた、私のフォームがあります:私はそれがローカル ここでは、コードであることを確認してみてください
<form method="post" action="/postFormAct" enctype="multipart/form-data">
<input type="text" name="user"><br>
<input type="text" name="email"><br>
<input type="file" name="userPic"><br>
<input type="submit" value="Submit">
</form>
コードが欠落していないと仮定していますが、欠落している依存関係の 'mime'と' isLoggedIn'を追加すると、あなたのコードは動作します。エラーがないことを確認するために 'err'を記録しようとしましたか? 'destination'と' filename'関数にログインして、それらが呼び出されているかどうかを確認しようとしましたか?ファイルシステムのアクセス権の問題ですか?相対パスの代わりに絶対パスを使用しようとしましたか? – skirtle
私はロギングを試みましたが、エラーはありません。私はすべてのソリューションを試し、空の配列または未定義のreq.filesが得られるたびにフォームに何か問題があります – rafalos
フォームはかなり良いですが、別の '
'を実行してください。コードには何も問題はありません。私はあなたのコードを実行し、私のために働いています。テスト目的のためだけにisLoggedInを削除し、コードを実行してください。 –