SpringBoot 使用对象接收多参数及多文件方式,Ajax 上传

  1. 在使用 SpringBoot 接收参数时,可以定义 VO ,如 ImgUploadVO.java
    /**
     * 外键
     */
    private String fid;
    /**
     * 图片类型
     */
    private List<String> types;
    /**
     * 不同格式的图片
     */
    private MultipartFile[] maps; 
  1. 然后前端需要使用 FormData 对象来保存:
// data 中的 fid 为字符串,types 为字符串数组,maps 为文件数组
const attachmentFd = new FormData();
attachmentFd.append('fid', data.fid);
for(let i =0;i<data.types.length;i++){
    attachmentFd.append('types', data.types[i]);
    attachmentFd.append('maps', data.maps[i]);
}
return new Promise((resolve, reject) => {
    $.post({
        url: '请求路径',
        contentType: false,
        processData: false,
        mimeType: 'multipart/form-data',
        data: attachmentFd,
        success: res => resolve(res),
        error: err => reject(err)
    })
})
  1. Controller 中的参数就一个 ImgUploadVO 形参即可

  2. 需要注意的是,数组类型需要挨个 append 后端才会正常接收。

  3. 调试参数如下:


    image.png
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容