MulterError: Unexpected field报错:Express文件上传请求问题排查
MulterError: Unexpected field 问题排查与解决
问题原因
你通过multer().single('foto_1')指定了仅接收名为foto_1的单个文件字段,但从Postman测试的情况来看,请求里的文件字段名是foto,和配置的字段名不匹配,Multer识别到未配置的字段后抛出该错误。另外,如果请求中包含多个未被允许的文件字段,也会触发同样的错误。
解决办法
方案1:调整Multer配置匹配请求字段
把代码里的字段名改成和请求一致的foto:
router.post('/', campos.single('foto'), async(req, res, next) => { res.send("teste") });
方案2:调整请求字段名匹配Multer配置
在Postman中把文件字段名从foto修改为foto_1,和代码配置保持统一。
扩展场景处理(多文件字段需求)
如果业务需要接收多个不同字段的文件,不要使用single(),改用fields()方法配置允许的字段列表:
// 示例:允许接收foto_1和foto_2两个字段的文件,每个字段最多1个文件 var campos = multer(); router.post('/', campos.fields([ { name: 'foto_1', maxCount: 1 }, { name: 'foto_2', maxCount: 1 } ]), async(req, res, next) => { res.send("teste") });
内容的提问来源于stack exchange,提问作者Diego Alves
相关产品推荐
相关产品推荐

