用户登录

后面我们会用到文件过滤器,它可以限制可以上传的文件的类型,在这个 upload 目录里面,创建一个文件,放在 utilities 目录里面,名字是 file-filters.ts。

在文件顶部先导入一些东西,导入 Request 还有 Express 来自 express 这个包,下面再导入一个 FileFilterCallback,来自 multer 这个包。

然后我们定义一个制造需要的文件过滤器用的方法,导出一个函数,名字是 createFileFilter ,接收一个 fileTypes 参数,类型是 Array , 这个函数可以返回一个文件过滤器函数,有个 request 参数,类型是 Request,还有个 file 参数,类型是 Express.Multer.File,然后是 callback 参数,类型是 FileFilterCallback。

在这个函数里面,声明一个 allowed ,用一下 fileTypes 参数的 some 方法,提供一个函数参数,有个 type ,返回的值判断一下 type 是否等于 file.mimetype 。

判断一下,如果 allowed ,允许上传,可以执行 callback ,第一个参数是 null,第二个参数是 true。 else ,不然就拒绝上传,执行 callback ,新建一个异常, BadRequestException,异常信息是 不能上传此类型文件。

图像文件过滤器

下面我们用这个 createFileFilter 创建一个允许上传图像文件的过滤器,导出一个函数,名字是 imageFileFilter,用一下 createFileFilter,提供一个数组,里面的项目就是允许上传的文件的类型,添加一个 image/png,一个 image/jpg,一个 image/jpeg 。

准备文件过滤器《 Nest.js 企业级后端实践:用户头像 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点