質問タイトルで説明するように、ファイル拡張子に基づいてアップロードされたファイルをフィルタリングする必要があります。だから、私は公式ドキュメントを見て、このウェブサイトを検索しました。私は私が出会ったソリューションを試してみたExpressでのMulterを使用したファイル拡張子のフィルタリング
を試してみた何
。ファイルは正常にアップロードされていますが、問題はファイルをフィルタリングする方法です。現在、私のRouter.jsファイルは次のようになっています。私はそれがその関数に入るかしないかどうかを確認するためにonFileUploadStart
で何かをしようとしたエコー
Router.JS
var multer = require('multer');
var storage = multer.diskStorage({ //multers disk storage settings
destination: function (req, file, cb) {
cb(null, './public/uploads/')
},
limits:{
files: 1,
fileSize: 1024 * 1024
},
filename: function (req, file, cb) {
var datetimestamp = Date.now();
cb(null, file.fieldname + '-' + datetimestamp + '.' + file.originalname.split('.')[file.originalname.split('.').length -1])
},
onFileUploadStart: function(file) {
console.log("Inside uploads");
if (file.mimetype == 'image/jpg' || file.mimetype == 'image/jpeg' || file.mimetype == 'image/png') {
return true;
}
else
{
return false;
}
}
});
var upload = multer({ //multer settings
storage: storage
}).single('profilepic');
router.post('/profile', function(req, res){
upload(req,res,function(err){
if(err)
{
console.log(err);
}
else
{
console.log("Image was uploaded");
}
});
});
。そしてそれはそうではありませんでした。 onFileUploadStart
以外にも、私はこのlinkで述べたようにfileFilter
を試しましたが、役に立たなかったです。どのようにこれを解決するための提案?前もって感謝します。