NestJS文件上传接口抛出unexpected field error错误排查
NestJS文件上传接口
unexpected field错误排查 这个错误是Multer解析上传请求时抛出的,核心原因是请求携带的文件字段和FileInterceptor声明的接收规则不匹配,你的接口代码本身没有语法问题:
@Post('upload') @UseInterceptors(FileInterceptor('file')) uploadFile(@UploadedFile() file: Express.Multer.File) { console.log(file); }
按以下顺序核对Postman配置即可解决:
- 确认请求格式:在Postman的Body标签页选择
form-data,不要选x-www-form-urlencoded、raw等其他格式,不要手动修改请求头里的Content-Type,Postman会自动填充multipart格式所需的boundary参数,手动修改会导致解析失败。 - 核对字段名:文件上传项的Key值必须严格填写
file,大小写完全一致,不能写成files、upload、image等其他自定义名称,Multer对字段名是精确匹配。 - 核对字段类型:Key输入框最右侧的下拉选项默认是
Text,必须手动切换为File类型,再在Value列选择本地待上传的文件,类型不匹配会导致Multer无法识别文件字段。 - 清理多余字段:当前用的
FileInterceptor仅接收file这一个文件字段,不要在form-data里额外添加其他未声明的文件字段,多余的文件字段会直接触发该错误。
如果后续需要支持多文件上传、多字段文件上传,替换为对应拦截器即可:
- 同字段多文件上传用
FilesInterceptor('字段名', 最大数量) - 多字段分别传文件用
FileFieldsInterceptor([{ name: '字段1', maxCount: 1 }, { name: '字段2', maxCount: 1 }])
内容的提问来源于stack exchange,提问作者Shruti sharma
相关产品推荐
相关产品推荐

