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>
相关推荐
赤壁小虾10 小时前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库
青山木11 小时前
Hot 100 --- 搜索插入位置
java·数据结构·算法·leetcode
Jul1en_11 小时前
【Claude Code Compact】源码级别的学习上下文压缩
java·前端·学习·github·ai编程
XWalnut12 小时前
SpringBoot快速入门
java·spring boot·后端
前端 贾公子12 小时前
第06章:结构化输出 (上)
java·服务器·前端
念何架构之路12 小时前
restartmanager-重启管理子系统
java·开发语言
Java内核笔记12 小时前
告别第三方库!Spring Boot 4 原生 API 版本控制全解析:4 种策略 + 实战案例
java·后端
小小洋洋12 小时前
OpenWrt 从U盘迁移到内置 eMMC,并完成扩容与 Docker 安装
java·docker·eureka
就改了13 小时前
SpringBoot 自定义线程池 + 实时监控指标
java·spring boot·后端
plainGeekDev13 小时前
运行时获取依赖 → 编译时注入
android·java·kotlin