当前位置: 首页 > 知识库问答 >
问题:

当文件数量超过限制时,如何处理multer中的上传调用所产生的错误?

薛欣德
2023-03-14

使用我的错误处理,它会像预期的那样抛出错误,即使它上传了一些文件(直到达到限制),然后抛出错误。如何在上传某些块文件前抛出此错误?

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

我试过了:

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();
}
});
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.
  })
})
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();
   }
 ]);

共有1个答案

束俊材
2023-03-14

因为你是上传多个文件,它应该是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.
  })
})
 类似资料:
  • 问题内容: 我正在使用multer将文件保存在通过express&nodejs开发的服务器上。 我使用下面的代码。 Multer会为我将文件保存在指定的目标文件夹中。 所有这些都工作正常,但我有以下问题: 如果文件保存由于各种原因而失败,则看来我的路线将始终返回状态204。 我不确定在保存文件后或异步获取文件时是否取消状态204,是否返回状态204。 问题答案: 您可以使用以下选项处理错误: 如果

  • 问题内容: 我正在用multer创建一个简单的文件上传系统: 一切正常,文件被上传。唯一不起作用的是最大大小的限制。我这样做是为了检查文件onfileupload start的大小,如果文件过大,它将返回false。但是文件仍然只是上传。 似乎根本没有做任何事情。我尝试了一些东西,但是什么也没有。 我究竟做错了什么?使用multer上载时如何限制文件大小? 问题答案: 新的API 没有。如果要限制

  • 问题内容: 无法将图片上传到。现在,如果选择的文件是,我希望能够将文件转换为并将转换后的文件上传到。我能够在转换到与仅如果我给了文件的路径。如何从中访问上载的文件?下面是我的代码: 我正在尝试像这样访问上载的文件: 因为在函数中传递了一个参数。 我的表格: 我在过程的哪一部分转换文件? 请帮忙。非常感谢。 问题答案: 您正在尝试在本地处理文件。该文件必须是您服务器的文件系统,或者至少要在上公开可用

  • 问题内容: 我正在尝试设置python库,以便将包含其他字典作为元素的字典保存到文件中。浮点数很多,我想将位数限制为例如。 根据其他职位,应使用SO 。但是,它不起作用。 例如,下面的代码在Python3.7.1中运行,将打印所有数字: 我该如何解决? 可能无关紧要,但我在macOS上。 编辑 该问题被标记为重复。但是,在原始帖子的已接受答案(到目前为止是唯一的答案)中明确指出: 注意:此解决方案

  • 我有一个express应用程序,正在使用multer上传文件,问题是当我在生产服务器上用PM2运行该应用程序时,multer上传文件给了我一个错误:

  • 我在为生产构建项目时出错。另外,在生成es5捆绑包时花费的时间太多。 以下是我的版本: