因为要上传文件所以得用form-data,上传文件同时还想再放入一个List集合对象,实现方式就是前段用JSON.stringify()方法将JavaScript对象或值转换为JSON字符串,后台使用字符串接收然后解析一下。

前段:
图片是ApiPost接口调试工具,类似postMan
这里传入的字符串已经是json格式的了,图片是多个文件;

后台
后台可以接收到files,feedbackBills集合和其他数据了
import com.fasterxml.jackson.core.type.TypeReference;——注意这个类型 @PostMapping(
"/verifyAssets") public AjaxResult verifyAssets(DismantleSiteOrderBody
dismantleSiteOrderBody, MultipartFile[] files, String feedbackBills) { List<
FeedbackBill> feedbackBillList = objectMapper.readValue(feedbackBills, new
TypeReference<List<FeedbackBill>>() {}); return success(); }

这样写的原因:spring不使用formdata,可以自动映射,用了formdata就不行了,所以遇到formdata中带文件和数据一起上传的情况只能自己映射了

不使用@RequestBody原因:SpringMVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype(MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则SpringMVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信