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>
相关推荐
零雲4 分钟前
java面试:怎么保证消息队列当中的消息丢失、重复问题?
java·开发语言·面试
冬夜戏雪5 分钟前
【java学习日记】【12.11】【11/60】
java·开发语言
用户2190326527355 分钟前
实现Spring Cloud Sleuth的Trace ID追踪日志实战教程
java·后端
vx_bisheyuange5 分钟前
基于SpringBoot的在线互动学习网站设计
java·spring boot·spring·毕业设计
roman_日积跬步-终至千里6 分钟前
【源码分析】StarRocks TRUNCATE 语句执行流程:从 SQL 到数据清空的完整旅程
java·数据库·sql
雨中飘荡的记忆7 分钟前
Spring状态机深度解析:从入门到生产实战
java·spring
Kings908 分钟前
线程池导致的 shutdown失败的完整排查过程
java·spring boot
在坚持一下我可没意见9 分钟前
Spring 后端安全双剑(下篇):JWT 无状态认证 + 密码加盐加密实战
java·开发语言·spring boot·后端·安全·spring
期待のcode13 分钟前
MyBatis-Plus通用枚举
java·数据库·后端·mybatis·springboot