Java获取MultipartFile文件后缀名的多种方法

 更新时间:2025年06月27日 09:18:17   作者:墨瑾轩  
Java处理MultipartFile获取后缀名的方法包括字符串操作、正则、Apache CommonsIO、Spring StringUtils等,建议根据项目依赖和需求选择合适方式,本文通过代码示例介绍的非常详细,需要的朋友可以参考下

在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();
}

这些方法各有优缺点,可以根据具体需求和项目环境选择合适的方法。例如,如果项目已经使用了Spring框架,那么使用StringUtils类会更为方便;如果希望避免额外的依赖,那么lastIndexOfsubstring方法或split方法则是不错的选择。

以上就是Java获取MultipartFile文件后缀名的多种方法的详细内容,更多关于Java获取MultipartFile后缀名的资料请关注脚本之家其它相关文章!

相关文章

  • 基于java SSM springboot实现景区行李寄存管理系统

    基于java SSM springboot实现景区行李寄存管理系统

    这篇文章主要介绍了基于java SSM springboot实现的景区行李寄存管理系统,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • SpringBoot的三大开发工具小结

    SpringBoot的三大开发工具小结

    本文主要介绍了SpringBoot的三大开发工具,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • 如何解决LocalDateTime传值JSON格式化问题

    如何解决LocalDateTime传值JSON格式化问题

    这篇文章主要介绍了如何解决LocalDateTime传值JSON格式化问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java中关于String的两种赋值方式

    Java中关于String的两种赋值方式

    这篇文章主要介绍了Java中关于String的两种赋值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • MyBatis使用自定义TypeHandler转换类型的实现方法

    MyBatis使用自定义TypeHandler转换类型的实现方法

    这篇文章主要介绍了MyBatis使用自定义TypeHandler转换类型的实现方法,本文介绍使用TypeHandler 实现日期类型的转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • 使用maven工具解决jar包冲突或重复加载的问题

    使用maven工具解决jar包冲突或重复加载的问题

    这篇文章主要介绍了使用maven工具解决jar包冲突或重复加载的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • SpringCloud实现权限管理(网关+jwt版)

    SpringCloud实现权限管理(网关+jwt版)

    本文主要介绍了SpringCloud实现权限管理(网关+jwt版),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-10-10
  • 详解Java中日志跟踪的简单实现

    详解Java中日志跟踪的简单实现

    MDC​(Mapped Diagnostic Context,映射调试上下文)是 log4j​ 、logback及log4j2​ 提供的一种方便在多线程条件下记录日志的功能。本文将利用MDC实现简单的日志跟踪,需要的可以参考一下
    2022-08-08
  • idea安装汉化插件的图文教程

    idea安装汉化插件的图文教程

    本文主要介绍了idea安装汉化插件的图文教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • SpringBoot整合FastJson过程解析

    SpringBoot整合FastJson过程解析

    这篇文章主要介绍了SpringBoot整合FastJson过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10

最新评论