接受多张限制图片
Multer limit images accepted
我正在使用 Multer 和 Multer S3 来允许用户在 Node 项目上上传图像。我希望用户能够上传 3 张图片,无论它们的大小如何,但不能再多了。如果用户尝试 select 说出 6 张图片,我会收到此错误页面:
Error: Unexpected field
at makeError
我如何更改下面的代码以不允许用户 select/upload 超过 3 张图像 and/or 以更好的方式处理错误。
部分代码:
router.post("/", upload.array('image', 3), function(req, res, next){
var filepath = undefined;
var filepath2 = undefined;
var filepath3 = undefined;
if(req.files[0]) {
filepath = req.files[0].key;
}
if(req.files[1]) {
filepath2 = req.files[1].key;
}
if(req.files[2]) {
filepath3 = req.files[2].key;
}.....
更新:
我添加了这个,现在如果用户尝试上传超过 3 个,我会进入 "too many files" 错误页面。现在我只需要弄清楚如果文件太多时如何重定向。
var upload = multer({
limits : { files: 3 },
我玩过 multer,这是我能够开始工作的东西。
像这样定义您的 multer 设置
var upload = multer().array('image', 3);
然后把你的函数修改成这样,
router.post("/", function(req, res, next){
upload(req, res, function (err) {
if (err) {
//redirect your user here ...
return;
}
//no multer error proceed with your normal operation ...
})
});
我正在使用 Multer 和 Multer S3 来允许用户在 Node 项目上上传图像。我希望用户能够上传 3 张图片,无论它们的大小如何,但不能再多了。如果用户尝试 select 说出 6 张图片,我会收到此错误页面:
Error: Unexpected field
at makeError
我如何更改下面的代码以不允许用户 select/upload 超过 3 张图像 and/or 以更好的方式处理错误。
部分代码:
router.post("/", upload.array('image', 3), function(req, res, next){
var filepath = undefined;
var filepath2 = undefined;
var filepath3 = undefined;
if(req.files[0]) {
filepath = req.files[0].key;
}
if(req.files[1]) {
filepath2 = req.files[1].key;
}
if(req.files[2]) {
filepath3 = req.files[2].key;
}.....
更新:
我添加了这个,现在如果用户尝试上传超过 3 个,我会进入 "too many files" 错误页面。现在我只需要弄清楚如果文件太多时如何重定向。
var upload = multer({
limits : { files: 3 },
我玩过 multer,这是我能够开始工作的东西。
像这样定义您的 multer 设置
var upload = multer().array('image', 3);
然后把你的函数修改成这样,
router.post("/", function(req, res, next){
upload(req, res, function (err) {
if (err) {
//redirect your user here ...
return;
}
//no multer error proceed with your normal operation ...
})
});