java?MultipartFile文件上傳重命名詳細(xì)代碼示例
前言
我們?cè)谖募蟼鞯臅r(shí)候,需要考慮重名覆蓋問(wèn)題,為邏輯嚴(yán)謹(jǐn),需要在文件上傳的時(shí)候,將文件名前方拼接UUID或者時(shí)間戳,來(lái)區(qū)分同名文件,但因此引出如何修改前端傳給后端的文件名稱。
代碼示例:
這時(shí)候需要將這個(gè)類型的MultipartFile內(nèi)部將文件名添加UUID,但前端又不太方便處理,由此后端處理方式如下:
String fileSuffix = multipartFile.getOriginalFilename();
//文件重命名
String fileName0 = fileSuffix.substring(0,fileSuffix.lastIndexOf("."));
String fileName1 = fileSuffix.substring(fileSuffix.lastIndexOf(".")+1);
//重命名
String newName = uuid+"_"+fileName0;
//臨時(shí)文件
File file=File.createTempFile(newName , "."+fileName1);
multipartFile.transferTo(file);
InputStream inputStream = new FileInputStream(file);
//File轉(zhuǎn)換成MultipartFile
multipartFile = new MockMultipartFile(file.getName(), file.getName(),multipartFile.getContentType(),inputStream);
//程序退出后刪除臨時(shí)文件
file.deleteOnExit();
注意:
File file=File.createTempFile(newName , “.”+fileName1);
該方法創(chuàng)建文件的時(shí)候,文件名(newName )不能不能少于兩個(gè)漢字
補(bǔ)充:
1、引入的依賴
import org.springframework.mock.web.MockMultipartFile;
2、pom依賴
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
總結(jié)
到此這篇關(guān)于java MultipartFile multipartFile文件上傳重命名的文章就介紹到這了,更多相關(guān)java MultipartFile multipartFile文件上傳重命名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaWeb禁止瀏覽器緩存當(dāng)前Web頁(yè)面的方法
所謂瀏覽器緩存,是指當(dāng)?shù)谝淮卧L問(wèn)網(wǎng)頁(yè)時(shí),瀏覽器會(huì)將這些網(wǎng)頁(yè)緩存到本地,當(dāng)下一次再訪問(wèn)這些被緩存的網(wǎng)頁(yè)時(shí),瀏覽器就會(huì)直接從本地讀取這些網(wǎng)頁(yè)的內(nèi)容,而無(wú)需再?gòu)木W(wǎng)絡(luò)上獲取2017-11-11
Spring?Boot?打包成Jar包運(yùn)行原理分析
這篇文章主要為大家介紹了Spring?Boot?打包成Jar包運(yùn)行的原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
java 使用線程做的一個(gè)簡(jiǎn)單的ATM存取款實(shí)例代碼
線程 Thread 類,和 Runable 接口 比較兩者的特點(diǎn)和應(yīng)用領(lǐng)域.可以,直接繼承線程Thread類。該方法編寫簡(jiǎn)單,可以直接操作線程,適用于單重繼承情況,因而不能在繼承其他類,下面我們來(lái)看一個(gè)實(shí)例2013-08-08
Java中的延遲隊(duì)列DelayQueue詳細(xì)解析
這篇文章主要介紹了Java中的延遲隊(duì)列DelayQueue詳細(xì)解析,JDK自身支持延遲隊(duì)列的數(shù)據(jù)結(jié)構(gòu),其實(shí)類:java.util.concurrent.DelayQueue,<BR>我們通過(guò)閱讀源碼的方式理解該延遲隊(duì)列類的實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下2023-12-12
使用SpringBoot3整合Spring AI實(shí)現(xiàn)具有記憶功能的AI助手
本文介紹了使用SpringBoot3整合SpringAI和Redis實(shí)現(xiàn)一個(gè)具有記憶功能的AI助手,項(xiàng)目使用Redis作為存儲(chǔ)介質(zhì),支持用戶級(jí)別的會(huì)話隔離和30天的對(duì)話歷史持久化,詳細(xì)介紹了環(huán)境準(zhǔn)備、項(xiàng)目初始化、核心配置、功能實(shí)現(xiàn)及測(cè)試驗(yàn)證步驟,需要的朋友可以參考下2026-04-04
使用Java?Executors創(chuàng)建線程池的9種方法
文章主要介紹了?Java?中Executors類創(chuàng)建線程池的?9?種方法,每種方法都詳細(xì)闡述了實(shí)現(xiàn)原理、源代碼分析、參數(shù)解釋、實(shí)現(xiàn)過(guò)程、特性和使用場(chǎng)景,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-11-11
java實(shí)現(xiàn)token無(wú)感刷新+處理并發(fā)的后端方案
在Web應(yīng)用中,Token用于身份驗(yàn)證和會(huì)話管理,但當(dāng)Token過(guò)期時(shí),可能會(huì)導(dǎo)致用戶在提交表單或進(jìn)行操作時(shí)突然被重定向到登錄頁(yè)面,本文就來(lái)介紹一下java實(shí)現(xiàn)token無(wú)感刷新+處理并發(fā)的后端方案,感興趣的可以了解一下2024-11-11
Java異常處理 Throwable實(shí)現(xiàn)方法解析
這篇文章主要介紹了Java異常處理 Throwable實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
java中JSONArray互相轉(zhuǎn)換List的實(shí)現(xiàn)
本文主要介紹了java中JSONArray互相轉(zhuǎn)換List的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

