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类会更为方便;如果希望避免额外的依赖,那么lastIndexOf和substring方法或split方法则是不错的选择。
以上就是Java获取MultipartFile文件后缀名的多种方法的详细内容,更多关于Java获取MultipartFile后缀名的资料请关注脚本之家其它相关文章!
相关文章
基于java SSM springboot实现景区行李寄存管理系统
这篇文章主要介绍了基于java SSM springboot实现的景区行李寄存管理系统,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-08-08
MyBatis使用自定义TypeHandler转换类型的实现方法
这篇文章主要介绍了MyBatis使用自定义TypeHandler转换类型的实现方法,本文介绍使用TypeHandler 实现日期类型的转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-10-10


最新评论