@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
相关推荐
郑州光合科技余经理24 分钟前
本地生活平台搭建:跨业态用户标识怎么贯通
java·开发语言·前端·后端·uni-app·php·ai编程
木头科技30 分钟前
【AI 工程化第八篇】Spring AI 多模型路由实战:DeepSeek、通义、Kimi、OpenAI 如何统一接入和自动切换
java·人工智能·spring
深盾科技_Virbox33 分钟前
云端与本地并行交付,软件许可管理如何实现统一运营?
java·大数据·开发语言·安全
thefool11226634 分钟前
多线程 3
java
CoderYanger40 分钟前
A.每日一题:856. 括号的分数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
马剑威(威哥爱编程)1 小时前
【AI全栈后端12-11】Spring Boot 把 AI 接口真正上线扛量:限流 / 降级 / 可观测
人工智能·spring boot·后端
liangbo71 小时前
01-Java 集合框架全景:从 Collection 到 Map 一张关系网理清
java
xuxigifxfh1 小时前
HJ15 求int型正整数在内存中存储时1的个数
java·开发语言·华为机考
Wokoo71 小时前
自动化测试入门:核心场景、回归测试与 Web 自动化环境搭建
java·开发语言·测试工具
RuoyiOffice1 小时前
SpringBoot+Vue3+Onlyoffice 企业文件生命周期:上传、业务关联、权限、版本与安全清理
spring boot·vue3·文件管理·对象存储·权限控制·ruoyi office·附件管理