gpt4 book ai didi

node.js - 当文件数量超出限制时,如何处理 multer 中的上传调用产生的错误?

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:42 27 4
gpt4 key购买 nike

通过我的错误处理,它会按预期抛出错误,即使它上传了一些文件(直到达到限制),然后抛出错误。如何在上传某些 block 文件之前抛出此错误?

enter image description here

当超过上传文件数限制时,如何在上传前抛出错误?提前致谢!

我尝试过:

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;

尝试了该线程中的几乎所有内容:File uploading with Express 4.0: req.files undefined

错误处理:

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

你的路由处理程序可以是相同的,并且可以在 if 中处理错误:

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.
})
})

关于node.js - 当文件数量超出限制时,如何处理 multer 中的上传调用产生的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57797621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com