Express jsでファイルのアップロードを保護する方法を見つけるために、私はよくグーグルで検索し、最後に次のコードを開発します。
app.use(express.json());
app.use(express.urlencoded());
app.post('/',express.bodyParser({
keepExtensions: true,
uploadDir: __dirname + '/faxFiles',
limit: '20mb'
}),function(req,res){
checkFile(req.files.faxFile);
});
ご覧のとおり、ファイル サイズを制限し、bodyParser で uploadDir を設定できます。次に、ユーザーが画像と pdf のみをアップロードできるようにする必要があります。使用した方法は、checkFile
次のコードを含む関数です。
var fs = require('fs');
var checkFile = function(faxFile){
if (faxFile.type != "image/jpeg" || faxFile.type != "application/pdf" || faxFile.type != "image/gif"){
fs.unlink(faxFile.path, function(err){
});
}
}
しかし、それは最善の方法ではないと思います.bodyParserコンストラクターでファイル拡張子を設定するなど、別の方法はありますか?