前言
写一个API接口,需要同时传递信息和文件,其实用@RequestParam+参数名字是可以解决的,但是传信息到时候如果要用一个DTO类来接收的话,就没法和@RequestParam共用了,也就接收不到文件了。因此本文主要解决如何使文件和DTO类并存。
一、@RequestPart
@RequestPart这个注解用在multipart/form-data表单提交请求的方法上,主要用来搭配springboot接收MultipartFile类型的文件。
由于RequestPart是基于表单提交的,那么就可以通过表单来接收另一个DTO类,从而避免了通过RequestParam一个一个接收变量。
二、使用步骤
直接贴代码,很简答:
@PostMapping("XXX")
public 返回的类 pushCar(@RequestPart @Valid final XXXDTO xXXDTO, @RequestPart("filenames") List<MultipartFile> files) {
//处理逻辑
return 返回的类的实例;
}```
利用两个RequestPart注解,分别接收正经的字段,和不正经的文件。
三、postman测试注意事项
这里面有个小坑,postman的表单是不能直接测试的,需要选择上传文件的类型后,上传两个文件。
第一个文件是:私底下打包一份DTO类的json文件。
第二个文件是:你要上传的文件们。
这里new3.json就是自己手写的DTO的json。
总结
本文主要是介绍了一下如何利用RequestPart同时接收一个类+一堆文件。