📅  最后修改于: 2023-12-03 15:17:44.978000             🧑  作者: Mango
Multer 是一个 Node.js 的中间件,用于处理 HTTP 请求中的 multipart/form-data
类型数据。Multer 允许上传文件并做出适当的限制,其中包括限制上传文件的大小。
在使用 Multer 限制上传文件大小之前,我们需要在 Node.js 项目中安装 Multer。可以使用以下命令:
npm install multer
下面是一个使用 Multer 限制上传文件大小的示例:
const multer = require('multer');
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, 'uploads')
},
filename: (req, file, cb) => {
cb(null, file.fieldname + '-' + Date.now())
}
});
const fileFilter = (req, file, cb) => {
// 检查文件类型,如果不是 image/png 或 image/jpeg,则禁止上传
if (file.mimetype === 'image/png' || file.mimetype === 'image/jpeg') {
cb(null, true);
} else {
cb(null, false);
return cb(new Error('只允许上传png和jpeg图像文件'));
}
}
const upload = multer({
storage: storage,
limits: { fileSize: 1000000 }, // 限制文件大小 1 MB
fileFilter: fileFilter
});
app.post('/upload', upload.single('image'), (req, res) => {
res.send('文件已成功上传');
});
在上面的示例中,我们使用 limits
对象来限制上传文件的大小。在该示例中,我们限制上传文件的大小不超过 1 MB(即 fileSize: 1000000
)。如果上传的文件大小超过 1 MB,则 Multer 将抛出一个错误。
Multer 是 Node.js 中处理上传文件的一种中间件。在使用 Multer 时,可以使用 limits
对象轻松地限制上传文件的大小。为了保持代码的可读性,我们使用了一个 fileFilter
函数来对上传的文件类型进行检查。