欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java獲取MultipartFile文件后綴名的多種方法

 更新時間:2025年06月27日 09:18:17   作者:墨瑾軒  
Java處理MultipartFile獲取后綴名的方法包括字符串操作、正則、Apache CommonsIO、Spring StringUtils等,建議根據(jù)項目依賴和需求選擇合適方式,本文通過代碼示例介紹的非常詳細,需要的朋友可以參考下

在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類會更為方便;如果希望避免額外的依賴,那么lastIndexOfsubstring方法或split方法則是不錯的選擇。

以上就是Java獲取MultipartFile文件后綴名的多種方法的詳細內(nèi)容,更多關(guān)于Java獲取MultipartFile后綴名的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot使用kafka的過程

    springboot使用kafka的過程

    本文介紹了Spring Boot集成Kafka的步驟,包括啟動服務(wù)、配置生產(chǎn)者與消費者,以及Kafka從依賴Zookeeper到Kraft模式的版本演進,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2025-06-06
  • Spring?boot?集成?MQTT詳情

    Spring?boot?集成?MQTT詳情

    這篇文章主要介紹了Spring?boot?集成?MQTT詳情,MQTT是一種基于發(fā)布/訂閱模式的"輕量級"通訊協(xié)議,可以以極少的代碼和有限的帶寬為連接遠程設(shè)備提供實時可靠的消息服,下文更多相關(guān)介紹,需要的小伙伴可以參考一下
    2022-04-04
  • java基于servlet編寫上傳下載功能 類似文件服務(wù)器

    java基于servlet編寫上傳下載功能 類似文件服務(wù)器

    這篇文章主要為大家詳細介紹了java基于servlet編寫上傳下載功能,類似文件服務(wù)器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 關(guān)于feign接口動態(tài)代理源碼解析

    關(guān)于feign接口動態(tài)代理源碼解析

    這篇文章主要介紹了關(guān)于feign接口動態(tài)代理源碼解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot構(gòu)建Restful service完成Get和Post請求

    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的三種方式

    這篇文章主要介紹了使用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)系解讀

    這篇文章主要介紹了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接口方式)

    這篇文章主要介紹了Spring源碼之事件監(jiān)聽機制(實現(xiàn)EventListener接口方式),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • springboot實現(xiàn)配置文件關(guān)鍵信息加解密

    springboot實現(xiàn)配置文件關(guān)鍵信息加解密

    在項目配置文件中常常會配置如數(shù)據(jù)庫連接信息,redis連接信息等,連接密碼明文配置在配置文件中會很不安全,所以本文就來聊聊如何使用springboot實現(xiàn)配置文件關(guān)鍵信息加解密吧
    2025-05-05
  • mybatis配置Mapper.xml文件時遇到的問題及解決

    mybatis配置Mapper.xml文件時遇到的問題及解決

    這篇文章主要介紹了mybatis配置Mapper.xml文件時遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評論