私のエラー処理では、いくつかのファイルをアップロードし(制限に達するまで)、エラーがスローされても、期待どおりにエラーがスローされます。いくつかのチャンクファイルをアップロードする前にこのエラーをスローする方法は?
アップロードするファイルの制限を超えた場合、アップロードする前にエラーをスローするにはどうすればよいですか?前もって感謝します!
私が試したもの:
app.post('/upload',[
multer({
dest : function(req, file, cb){
let dest = 'uploads/1992-12-11/'
let len = parseInt(req.files.length);
if(len === 20){
console.log('let us throw error');
}
cb(null, dest);
}
onError : function(err, next){
console.log('error' + err);
next(err);
}
}),
function(req, res) {
res.status(204).end();
}
});
express-fileuploadを使用して、multer指定の手法を使用して検証しました
var multer = require('multer')
var upload = multer().single('avatar')
app.post('/profile', function (req, res) {
upload(req, res, function (err) {
if (err instanceof multer.MulterError) {
// A Multer error occurred when uploading.
} else if (err) {
// An unknown error occurred when uploading.
}
// Everything went fine.
})
})
console.log(req.files);に対してnullを返します。
このスレッドのほとんどすべてを試しました:Express 4.0でのファイルのアップロード:req.filesundefined
エラー処理:
app.post('/upload',[
multer({
dest : './uploads/1992-12-11/',
onError : function(err, next) {
console.log('error', err);
next(err);
}
}),
function(req, res) {
res.status(204).end();
}
]);
複数のファイルをアップロードしているので、それはmulter配列である必要があります。次のようにファイル制限を指定できます。
var upload = multer().array('file', 20); // where 20 is the limit
ルートハンドラーは同じにすることができ、次の場合にエラーを処理できます。
app.post('/profile', function (req, res) {
upload(req, res, function (err) {
if (err instanceof multer.MulterError) {
// A Multer error occurred when uploading.
} else if (err) {
// An unknown error occurred when uploading.
}
// Everything went fine.
})
})
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加