You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 18:59:55