Java獲取MultipartFile文件后綴名的多種方法
在Java中,處理MultipartFile對象時,獲取文件后綴名是一個常見的需求。以下是幾種常用的方法:
使用lastIndexOf和substring方法:
public static String getExtension(MultipartFile file) {
if (file == null) {
return "";
}
String originalFilename = file.getOriginalFilename();
if (originalFilename == null || originalFilename.isEmpty()) {
return "";
}
int dotIndex = originalFilename.lastIndexOf('.');
if (dotIndex == -1 || dotIndex == originalFilename.length() - 1) {
return "";
}
return originalFilename.substring(dotIndex + 1).toLowerCase();
}
使用split方法:
public static String getExtension(MultipartFile file) {
if (file == null) {
return "";
}
String originalFilename = file.getOriginalFilename();
if (originalFilename == null) {
return "";
}
String[] parts = originalFilename.split("\\.");
return parts.length > 1 ? parts[parts.length - 1].toLowerCase() : "";
}
使用正則表達式:
public static String getExtension(MultipartFile file) {
if (file == null) {
return "";
}
String originalFilename = file.getOriginalFilename();
if (originalFilename == null) {
return "";
}
Pattern pattern = Pattern.compile("\\.(\\w+)$");
Matcher matcher = pattern.matcher(originalFilename);
return matcher.find() ? matcher.group(1).toLowerCase() : "";
}
使用Apache Commons IO的FilenameUtils類:
import org.apache.commons.io.FilenameUtils;
public static String getExtension(MultipartFile file) {
if (file == null) {
return "";
}
String originalFilename = file.getOriginalFilename();
return FilenameUtils.getExtension(originalFilename).toLowerCase();
}
使用Spring框架的StringUtils類:
import org.springframework.util.StringUtils;
public static String getExtension(MultipartFile file) {
if (file == null) {
return "";
}
String originalFilename = file.getOriginalFilename();
return StringUtils.getFilenameExtension(originalFilename);
}
使用File類:
import java.io.File;
public static String getExtension(MultipartFile file) {
if (file == null) {
return "";
}
String originalFilename = file.getOriginalFilename();
if (originalFilename == null) {
return "";
}
File tempFile = new File(originalFilename);
String name = tempFile.getName();
int dotIndex = name.lastIndexOf('.');
return (dotIndex > 0 && dotIndex < name.length() - 1)
? name.substring(dotIndex + 1).toLowerCase()
: "";
}
使用Java NIO的Paths類:
import java.nio.file.Path;
import java.nio.file.Paths;
public static String getExtension(MultipartFile file) {
if (file == null) {
return "";
}
String originalFilename = file.getOriginalFilename();
if (originalFilename == null) {
return "";
}
Path path = Paths.get(originalFilename);
String name = path.getFileName().toString();
return name.substring(name.lastIndexOf('.') + 1).toLowerCase();
}
這些方法各有優(yōu)缺點,可以根據(jù)具體需求和項目環(huán)境選擇合適的方法。例如,如果項目已經(jīng)使用了Spring框架,那么使用StringUtils類會更為方便;如果希望避免額外的依賴,那么lastIndexOf和substring方法或split方法則是不錯的選擇。
以上就是Java獲取MultipartFile文件后綴名的多種方法的詳細內(nèi)容,更多關(guān)于Java獲取MultipartFile后綴名的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java基于servlet編寫上傳下載功能 類似文件服務(wù)器
這篇文章主要為大家詳細介紹了java基于servlet編寫上傳下載功能,類似文件服務(wù)器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-07-07
SpringBoot構(gòu)建Restful service完成Get和Post請求
這篇文章主要介紹了SpringBoot構(gòu)建Restful service完成Get和Post請求的示例代碼,感興趣的朋友一起看看吧2017-08-08
使用java實現(xiàn)百萬級別數(shù)據(jù)導(dǎo)出excel的三種方式
這篇文章主要介紹了使用java實現(xiàn)百萬級別數(shù)據(jù)導(dǎo)出excel的三種方式,有些業(yè)務(wù)系統(tǒng)可能動輒涉及到百萬上千萬的數(shù)據(jù),用正常的方法效率就變得很低,今天我們來看看這幾種實現(xiàn)思路2023-03-03
JDK?version和class?file?version(Class編譯版本號)對應(yīng)關(guān)系解讀
這篇文章主要介紹了JDK?version和class?file?version(Class編譯版本號)對應(yīng)關(guān)系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Spring源碼之事件監(jiān)聽機制(實現(xiàn)EventListener接口方式)
這篇文章主要介紹了Spring源碼之事件監(jiān)聽機制(實現(xiàn)EventListener接口方式),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
springboot實現(xiàn)配置文件關(guān)鍵信息加解密
在項目配置文件中常常會配置如數(shù)據(jù)庫連接信息,redis連接信息等,連接密碼明文配置在配置文件中會很不安全,所以本文就來聊聊如何使用springboot實現(xiàn)配置文件關(guān)鍵信息加解密吧2025-05-05
mybatis配置Mapper.xml文件時遇到的問題及解決
這篇文章主要介紹了mybatis配置Mapper.xml文件時遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01

