📅  最后修改于: 2023-12-03 14:53:21.333000             🧑  作者: Mango
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 抛出的错误。