@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
相关推荐
Q_Q5110082857 分钟前
python+django/flask在线问诊系统 医院就诊 医生推荐系统
spring boot·python·django·flask·node.js·php
qq_4026056518 分钟前
JAVA大文件分片上传
java·大文件上传
ss27331 分钟前
手写MyBatis第78弹:装饰器模式在MyBatis二级缓存中的应用:从LRU到防击穿的全方案实现
java·开发语言
凯尔萨厮34 分钟前
Java学习笔记五(多态)
java·笔记·学习
迷迷的k35 分钟前
后端两个接口需分开写,前端需不串行并同时刷新调用但数据不同步NOTE
java·数据同步问题
一叶飘零_sweeeet2 小时前
极简 Go 语言教程:从 Java 开发者视角 3 小时入门实战
java·开发语言·golang
失散132 小时前
分布式专题——21 Kafka客户端消息流转流程
java·分布式·云原生·架构·kafka
xiaoye37082 小时前
Spring Boot 详细介绍
java·spring boot·后端
我不是混子2 小时前
如何实现数据脱敏?
java·后端
毕业设计制作和分享2 小时前
springboot523基于Spring Boot的大学校园生活信息平台的设计与实现
前端·vue.js·spring boot·后端·生活