@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
相关推荐
枫叶落雨2222 分钟前
ShardingSphere 介绍
java
花花鱼7 分钟前
Spring Security 与 Spring MVC
java·spring·mvc
陌殇殇41 分钟前
001 Spring AI Alibaba框架整合百炼大模型平台 — 快速入门
人工智能·spring boot·ai
言慢行善1 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
专吃海绵宝宝菠萝屋的派大星1 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
大数据新鸟1 小时前
操作系统之虚拟内存
java·服务器·网络
Tong Z1 小时前
常见的限流算法和实现原理
java·开发语言
凭君语未可1 小时前
Java 中的实现类是什么
java·开发语言
He少年1 小时前
【基础知识、Skill、Rules和MCP案例介绍】
java·前端·python