Postman上传MultipartFile返回null问题求助
问题解决:MultipartFile上传后端接收为null
核心问题
你在控制器方法里用@RequestBody接收MultipartFile是错误的——@RequestBody专门用来解析JSON/XML格式的请求体,而文件上传属于multipart/form-data类型的请求,两者不兼容,这就是后端接收到null的直接原因。
解决步骤
1. 修正控制器方法注解
把@RequestBody替换成@RequestPart或@RequestParam,同时明确指定请求类型:
用@RequestPart的写法:
@PostMapping("/upload_bpmn_with_body", consumes = [MediaType.MULTIPART_FORM_DATA_VALUE]) fun uploadBPMN(@RequestPart("fileBPMN") fileBPMN: MultipartFile): CProcess { return serviceProcesses.save(serviceBPMN.parseBPMN(fileBPMN)) }
用@RequestParam的写法:
@PostMapping("/upload_bpmn_with_body", consumes = [MediaType.MULTIPART_FORM_DATA_VALUE]) fun uploadBPMN(@RequestParam("fileBPMN") fileBPMN: MultipartFile): CProcess { return serviceProcesses.save(serviceBPMN.parseBPMN(fileBPMN)) }
2. Postman上传配置
- 选择
POST请求,填入接口地址 - 切换到
Body标签,选中form-data - 键名填写
fileBPMN(必须和控制器里的参数名一致) - 键的类型选
File,右侧选择要上传的bpmn文件 - 发送请求即可
3. 额外检查项
- 你的
spring.servlet.multipart.enabled=true配置没问题,默认也是开启的,无需调整 - 如果上传大文件,可在
application.yml里追加大小限制:
spring: servlet: multipart: max-file-size: 10MB max-request-size: 10MB
内容的提问来源于stack exchange,提问作者cph
相关产品推荐
相关产品推荐

