📜  如何限制 multer 中的文件大小 (1)

📅  最后修改于: 2023-12-03 14:53:21.333000             🧑  作者: Mango

如何限制 multer 中的文件大小

Multer是一个功能强大的文件上传中间件,它易于使用并且非常灵活。在使用 Multer 时,我们可能需要对上传的文件进行大小限制,以确保服务器不会接受过大的文件。在本篇文章中,我们将学习如何限制 Multer 中的文件大小。

Multer限制文件大小的方法

Multer 可以通过添加限制条件(limits)来确保上传文件的大小符合我们的要求。以下是一个典型的 Multer 配置示例:

const multer = require("multer");

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, "./uploads");
  },
  filename: function (req, file, cb) {
    cb(null, Date.now() + "-" + file.originalname);
  },
});

const upload = multer({
  storage: storage,
  limits: {
    fileSize: 1024 * 1024 * 10, // 限制文件大小为10MB
  },
});

在上述示例中,我们使用 Multer 的 limits 选项来限制上传文件的大小为10MB。根据需要修改 fileSize 属性的值即可。

错误处理

当上传的文件大小超过限制时,Multer 会抛出一个错误。要处理这个错误,我们需要在 Express 应用程序中使用错误处理程序。

以下是一个错误处理程序示例:

app.use(function (err, req, res, next) {
  if (err instanceof multer.MulterError) {
    // 发送 Multer 错误
    res.status(400).json({ message: "文件大小超出限制。" });
  } else {
    next(err);
  }
});

在上述示例中,我们检查是否 Multer 错误,并相应地发送一个错误响应。这样,当 Multer 抛出错误时,我们就会返回客户端一个有用的错误消息。

结论

限制上传文件的大小是一个重要的安全措施,Multer 提供了一种灵活而易于使用的方法来实现这个目标。在使用 Multer 时,我们只需要添加一个 limits 选项即可轻松限制上传文件的大小。此外,为了提供更好的用户体验,我们还需要正确处理 Multer 抛出的错误。