java MultipartFile文件上传重命名详细代码示例
前言
我们在文件上传的时候,需要考虑重名覆盖问题,为逻辑严谨,需要在文件上传的时候,将文件名前方拼接UUID或者时间戳,来区分同名文件,但因此引出如何修改前端传给后端的文件名称。
代码示例:
这时候需要将这个类型的MultipartFile内部将文件名添加UUID,但前端又不太方便处理,由此后端处理方式如下:
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、引入的依赖
import org.springframework.mock.web.MockMultipartFile;
2、pom依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency>
总结
到此这篇关于java MultipartFile multipartFile文件上传重命名的文章就介绍到这了,更多相关java MultipartFile multipartFile文件上传重命名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一篇文章带你搞定SpringBoot不重启项目实现修改静态资源
这篇文章主要介绍了一篇文章带你搞定SpringBoot不重启项目实现修改静态资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-09-09Java并发系列之AbstractQueuedSynchronizer源码分析(共享模式)
这篇文章主要为大家详细介绍了Java并发系列之AbstractQueuedSynchronizer源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-02-02springboot+nacos+gateway实现灰度发布的实例详解
灰度发布是一种在软件部署过程中用于平滑过渡的技术,通过引入灰度发布SDK和配置网关策略实现,本文就来介绍一下,感兴趣的可以了解一下2022-03-03
最新评论