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>
相关推荐
Aision_3 小时前
从工具调用到 MCP、Skill完整学习记录
java·python·gpt·学习·langchain·prompt·agi
zc.z7 小时前
JAVA实现:纯PCM格式音频转换成BASE64
java·音视频·pcm
mask哥7 小时前
力扣算法java实现汇总整理(上)
java·算法·leetcode
Aaswk8 小时前
Java Lambda 表达式与流处理
java·开发语言·python
是宇写的啊8 小时前
Spring AOP
java·spring
万邦科技Lafite9 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
Mr_pyx10 小时前
Spring AI 入门教程:Java开发者的AI应用捷径
java·人工智能·spring
Zephyr_010 小时前
Leedcode算法题
java·算法
苍煜11 小时前
Java开发IO零基础吃透:BIO、NIO、同步异步、阻塞非阻塞
java·python·nio
折哥的程序人生 · 物流技术专研11 小时前
Java面试85题图解版(一):基础核心篇
java·开发语言·后端·面试