美文网首页
SpringBoot 使用对象接收多参数及多文件方式,Ajax

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

作者: nesanero | 来源:发表于2022-08-16 18:39 被阅读0次
  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

相关文章

网友评论

      本文标题:SpringBoot 使用对象接收多参数及多文件方式,Ajax

      本文链接:https://www.haomeiwen.com/subject/nbldgrtx.html