java MultipartFile multipartFile 文件上传重命名

java MultipartFile multipartFile 文件上传重命名

我们在文件上传的时候,需要考虑重名覆盖问题,为逻辑严谨,需要在文件上传的时候,将文件名前方拼接UUID或者时间戳,来区分同名文件,但因此引出如何修改前端传给后端的文件名称。

这时候需要将这个类型的MultipartFile内部将文件名添加UUID,但前端又不太方便处理,由此后端处理方式如下:

c 复制代码
String fileSuffix = multipartFile.getOriginalFilename();
//文件重命名
String fileName0 = fileSuffix.substring(0,fileSuffix.lastIndexOf("."));
String fileName1 = fileSuffix.substring(fileSuffix.lastIndexOf(".")+1);
//重命名
String newName = uuid+"_"+fileName0;
//临时文件
File file=File.createTempFile(newName , "."+fileName1);
multipartFile.transferTo(file);
InputStream inputStream = new FileInputStream(file);
//File转换成MultipartFile
multipartFile = new MockMultipartFile(file.getName(), file.getName(),multipartFile.getContentType(),inputStream);
//程序退出后删除临时文件
file.deleteOnExit();

注意:

File file=File.createTempFile(newName , "."+fileName1);

该方法创建文件的时候,文件名(newName )不能不能少于两个汉字

补充:

1、引入的依赖

c 复制代码
import org.springframework.mock.web.MockMultipartFile;

2、pom依赖

c 复制代码
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
相关推荐
MrSYJ34 分钟前
有没有人懂socketChannel中的write,read方法啊,给我讲讲
java·程序员·netty
Memory_荒年37 分钟前
Spring Security + OAuth2 + JWT:三剑客合璧,打造“无懈可击”的微服务安全防线
java·后端·spring
杰克尼1 小时前
知识点总结--02(java基础部分)
java·开发语言·jvm
mldlds2 小时前
Spring Boot 实战:轻松实现文件上传与下载功能
java·数据库·spring boot
xxjj998a2 小时前
Spring Boot 整合 Apollo 配置中心实战
java·spring boot·后端
武超杰2 小时前
Spring 纯注解配置全解析(进阶版)
java·开发语言
AC赳赳老秦2 小时前
OpenClaw关键词挖掘Agent配置(附SOP脚本,可直接复制使用)
java·大数据·开发语言·人工智能·python·pygame·openclaw
茶本无香2 小时前
JDK 21 ZGC分代功能详解:配置、原理及生产环境实践
java·jvm
xxjj998a2 小时前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
wellc3 小时前
Spring Boot 热部署
java·spring boot·后端