spring-boot 接收form表单 多文件加多字段数据(postman在form-data格式下传数组和集合)
前言
该博客多用于记录自己的问题
在写项目的时候遇到这种业务情况:
需要保存整个页面的数据,数据包含多个字段信息和多个文件
结合网上的处理思路,我最终实现了这种业务需求并整理一下
前端单独提交字段和文件比较方便简单,本人不太了解前端,既然前端说要用form表单同时传字段和文件,那么我就以这样的方式去研究怎么去同时接收
先看一下最终结果
其中遇到的一下问题
1.前端的数据格式是 multipart/form-data,不再是json格式,后端接收就不能加注解@RequestBody
如:
会报错,不支持这个方式
"msg": "Content type 'multipart/form-data;boundary=--------------------------958211735005905900137890;charset=UTF-8' not supported",
2. 所以前端就不能以对象的方式传数据,我不了解是否有其他解决方法,目前我的前端就是以键值对的方式给我数据,以postman为例
数据格式form-data,其中files是文件,其余是一个对象的字段,需求是多个文件,所以是以数组的方式接收
注意的是用postman以form-data格式传数组 按上图所示即可
3.同理,前端用form表单传文件数组时也遇到了问题,开始是将文件放入了名叫files数组一起传,但是后台接收不到,我猜测是没按键值对方式的原因,
最终解决是,文件名"name"为files,value值为不同的文件,如同postman的格式
4.其中,我的业务需求里,在对象中包含集合,看网上一些人说在上面这个传输格式下,不用注解@RequestBody,不会将集合自动装配到对象中,我用postman实验了一下,可以自动装配到对象中
需要注意的是:如何在form-data格式下传集合
如: