.NET6下用Postman上传图片至API报错:File字段为必填项
问题解答
一、参数修改可行性
完全可行。直接将方法参数改为[FromForm] IFormFile file并删除Image包装类,是.NET Web API接收单个表单文件的标准简洁写法,既能简化代码逻辑,也符合框架的参数绑定规范。
二、「File field is required」报错解决方法
报错核心原因是Postman表单字段名与API参数/属性名不匹配,或请求配置错误,分两种场景说明:
场景1:保留原Image类代码
你的Image类中属性名为小写的file,Postman配置必须严格对应:
- 请求方法选POST,URL填写
api/CarImages/add - 切换到Body标签,选择
form-data类型 - 新增字段:Key填
file(必须和类属性名完全一致,大小写敏感),Type选File,Value处选择要上传的图片文件 - 不要手动修改Content-Type,Postman会自动生成正确的
multipart/form-data请求头
场景2:改用直接接收IFormFile参数(推荐)
修改后的代码如下:
[Route("api/[controller]")] [ApiController] public class CarImagesController : ControllerBase { [HttpPost("add")] public IActionResult Add([FromForm] IFormFile file) { // 建议增加文件长度判断,避免空文件 if (file != null && file.Length > 0) { return Ok(); } return BadRequest(); } }
对应的Postman配置:
- 同样选择POST请求,Body用
form-data - 字段Key必须填
file(和方法参数名一致,大小写敏感),Type选File后选择上传文件 - 禁止手动设置Content-Type为
application/json,否则表单数据无法被正确解析
内容的提问来源于stack exchange,提问作者Canberk
相关产品推荐
相关产品推荐

