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>
相关推荐
亦暖筑序3 小时前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端
敲代码的彭于晏4 小时前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
plainGeekDev5 小时前
ButterKnife → ViewBinding
android·java·kotlin
像我这样帅的人丶你还21 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩21 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia1 天前
Mybatis的日志输入
java
亦暖筑序1 天前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户298698530141 天前
Java 实现 Word 文档加密与权限解除
java·后端
Yeats_Liao1 天前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿1 天前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试