@RequestMapping接收文件格式的形参(方法参数)

需求:将文件上传到OSS,忽略域名与路径,将文件名以 "img1.png,img2.png,img3.png"保存到数据库中

1、先看结果

后端要接收postman传递的file文件

2、SpringBoot接收参数方式

很显然,上面postman上传的地方可以传入多个文件,所以我们可以用List<MultipartFile>接收文件

java 复制代码
// 图片文件
private List<MultipartFile> imageLst;

3、代码逻辑

java 复制代码
@PostMapping(value = "/uploadImageList", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ApiOperation("批量上传封面图")
public R uploadImageList(@ModelAttribute UploadImageListInput input) {
····
}

重点:

1、这里要用@ModelAttribute而不是@RequestBody

2、为了接收date,要在 postmapping注解中中加入consumes = MediaType.MULTIPART_FORM_DATA_VALUE

3、获取上传文件的后缀名:

java 复制代码
public static final String getExtension(MultipartFile file) {
    String extension = FilenameUtils.getExtension(file.getOriginalFilename());
    if (StringUtils.isEmpty(extension)) {
        extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType()));
    }
    return extension;
}

4、番外篇:格式化字符串

整理存入数据库的格式:字符串+","+字符串

java 复制代码
public static void main(String[] args) {
    List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
    // 在每个数字后面加","但能保证最后一个数字后面不加","
    String join = String.join(",", integerList.stream()
            .map(String::valueOf)
            .collect(Collectors.toList()));
    System.out.println(join);
}

输出

java 复制代码
1,2,3,4,5
相关推荐
Coder_Boy_10 小时前
技术发展的核心规律是「加法打底,减法优化,重构平衡」
人工智能·spring boot·spring·重构
寻星探路14 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧16 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法17 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty72517 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎17 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄17 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿17 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds17 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化