Node.js 面试题
目录

请解释如何限制上传文件的大小和类型?

· 约 3 分钟读完 · 第 175 / 377 章

推荐答案

在Node.js中,可以通过以下方式限制上传文件的大小和类型:

  1. 限制文件大小:

    • 使用express框架时,可以通过limit选项来限制上传文件的大小。例如:
  2. 限制文件类型:

    • 使用multer库时,可以通过fileFilter选项来限制上传文件的类型。例如:

本题详细解读

限制文件大小

在Node.js中,处理文件上传时,通常使用multer中间件来处理multipart/form-data类型的表单数据。multer提供了一个limits选项,可以用来限制上传文件的大小。limits对象中的fileSize属性用于指定文件的最大大小,单位是字节。例如,1024 * 1024 * 5表示5MB。

限制文件类型

multer还提供了一个fileFilter选项,可以用来过滤上传的文件类型。fileFilter是一个函数,接收三个参数:req(请求对象)、file(文件对象)和cb(回调函数)。在fileFilter函数中,可以通过检查file.mimetype来判断文件的类型。如果文件类型符合要求,调用cb(null, true)允许上传;否则,调用cb(new Error('错误信息'))拒绝上传。

通过结合limits和fileFilter,可以有效地限制上传文件的大小和类型,从而增强应用的安全性和稳定性。