最近在一个新的springboot项目里面,写一个文件上传接口,正常按如下方式写,但是一直获取不到值。

1
2
3
public BaseResult<FileResponseVO> upload(@RequestPart(value = "file") MultipartFile file) {

}

这里的file一直为null,接口报400错误,设置了required = false后,在debug时file也是为null。反复核对了请求头,参数都没错。在网上搜了好久,试了各种解决方案,都是无效。
最后发现项目使用的是spring-boot-starter-webflux,并不是常用的springMVC。新项目到手,习以为常的就开始开发,忘记看一下项目架构,框架等。

最终解决方案是换成webflux的上传方式,用FilePart替换MultipartFile

1
2
3
public BaseResult<FileResponseVO> upload(@RequestPart(value = "file") FilePart file){

}