java MultipartFile文件上传重命名详细代码示例

 更新时间:2024年09月25日 09:35:35   作者:傻猴儿  
在文件上传功能开发中,为防止文件重名导致数据覆盖,常见的做法是在文件名前加上UUID或时间戳来区分,这篇文章主要介绍了java MultipartFile 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文件上传重命名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaWeb禁止浏览器缓存当前Web页面的方法

    JavaWeb禁止浏览器缓存当前Web页面的方法

    所谓浏览器缓存,是指当第一次访问网页时,浏览器会将这些网页缓存到本地,当下一次再访问这些被缓存的网页时,浏览器就会直接从本地读取这些网页的内容,而无需再从网络上获取
    2017-11-11
  • Spring Boot 打包成Jar包运行原理分析

    Spring Boot 打包成Jar包运行原理分析

    这篇文章主要为大家介绍了Spring Boot 打包成Jar包运行的原理分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • java 使用线程做的一个简单的ATM存取款实例代码

    java 使用线程做的一个简单的ATM存取款实例代码

    线程 Thread 类,和 Runable 接口 比较两者的特点和应用领域.可以,直接继承线程Thread类。该方法编写简单,可以直接操作线程,适用于单重继承情况,因而不能在继承其他类,下面我们来看一个实例
    2013-08-08
  • Java中的延迟队列DelayQueue详细解析

    Java中的延迟队列DelayQueue详细解析

    这篇文章主要介绍了Java中的延迟队列DelayQueue详细解析,JDK自身支持延迟队列的数据结构,其实类:java.util.concurrent.DelayQueue,<BR>我们通过阅读源码的方式理解该延迟队列类的实现过程,需要的朋友可以参考下
    2023-12-12
  • java性能火焰图的生成实践

    java性能火焰图的生成实践

    文章介绍async-profiler这一Java性能分析工具,可低开销生成火焰图,帮助定位CPU飙升、内存泄露等问题,涵盖准备程序、生成数据及展示三个核心步骤,适合解决线上性能瓶颈
    2025-07-07
  • 使用SpringBoot3整合Spring AI实现具有记忆功能的AI助手

    使用SpringBoot3整合Spring AI实现具有记忆功能的AI助手

    本文介绍了使用SpringBoot3整合SpringAI和Redis实现一个具有记忆功能的AI助手,项目使用Redis作为存储介质,支持用户级别的会话隔离和30天的对话历史持久化,详细介绍了环境准备、项目初始化、核心配置、功能实现及测试验证步骤,需要的朋友可以参考下
    2026-04-04
  • 使用Java Executors创建线程池的9种方法

    使用Java Executors创建线程池的9种方法

    文章主要介绍了 Java 中Executors类创建线程池的 9 种方法,每种方法都详细阐述了实现原理、源代码分析、参数解释、实现过程、特性和使用场景,感兴趣的小伙伴跟着小编一起来看看吧
    2024-11-11
  • java实现token无感刷新+处理并发的后端方案

    java实现token无感刷新+处理并发的后端方案

    在Web应用中,Token用于身份验证和会话管理,但当Token过期时,可能会导致用户在提交表单或进行操作时突然被重定向到登录页面,本文就来介绍一下java实现token无感刷新+处理并发的后端方案,感兴趣的可以了解一下
    2024-11-11
  • Java异常处理 Throwable实现方法解析

    Java异常处理 Throwable实现方法解析

    这篇文章主要介绍了Java异常处理 Throwable实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • java中JSONArray互相转换List的实现

    java中JSONArray互相转换List的实现

    本文主要介绍了java中JSONArray互相转换List的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论