D16 要去实现文件上传的功能,在应用的数据库里需要存储用户上传的文件相关的信息。使用 FileInterceptor 这个拦截器可以处理请求里的文件。用 UploadedFile 这个装饰器可以得到上传的文件相关的数据。
@Post() @UseInterceptors(FileInterceptor('file')) async store( @UploadedFile() data: FileDto ) { return await this.fileService.store(data); }
在客户端上传文件的时候,请求应该设置成 Multipart form,里面添加一个 file 字段,它的值就是要上传的文件。给 FileInterceptor 拦截器提供的参数值是 file ,所以上传的时候就需要包含一个叫 file 的字段 。
相关的配置: