MultipartFile file如何获取文件名
时间: 2023-11-01 09:57:31 浏览: 238
MultipartFile类中可以通过调用getOriginalFilename()方法来获取文件名。但是有时候会出现获取到的是文件的绝对路径而不是文件名的情况,导致上传失败。解决方法是判断获取到的文件名是否包含斜线或反斜线,如果存在,则截取最后一个斜线或反斜线之后的部分作为文件名。
示例代码如下:
```java
String filename = file.getOriginalFilename();
int unixSep = filename.lastIndexOf('/');
int winSep = filename.lastIndexOf('\\');
int pos = (winSep > unixSep ? winSep : unixSep);
if (pos != -1) {
filename = filename.substring(pos + 1);
}
```
这样可以确保获取到的文件名是正确的,可以顺利进行文件上传。
相关问题
MultipartFile怎么获取文件名
MultipartFile可以通过getOriginalFilename()方法获取文件名,但是在使用Internet Explorer或Microsoft Edge上传文件时,该方法获取到的是文件的完整路径,因此需要进行一些处理才能获取到文件名。以下是两种获取文件名的方式:
第一种方式:
```
//获取文件名称(可能包含路径)
String fileName = file.getOriginalFilename();
//获取最后"/"的索引
int startIndex = fileName.replaceAll("\\\\", "/").lastIndexOf("/");
//截取文件名,根据业务,文件后缀也可去掉
fileName = fileName.substring(startIndex + 1).substring(0,fileName.indexOf("."));
```
第二种方式:
```
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
```
其中,第二种方式需要引入org.springframework.util.StringUtils类。需要注意的是,如果文件名中包含路径,则需要进行处理才能获取到正确的文件名。
MultipartFile类 获取文件名不带后缀
可以使用MultipartFile类的getOriginalFilename()方法获取文件名,然后再用String类的substring()方法去掉文件后缀。具体实现可以参考以下代码:
```java
MultipartFile file = ...; // 获取上传的文件
String fileName = file.getOriginalFilename(); // 获取文件名,包括后缀
String filePrefix = fileName.substring(0, fileName.lastIndexOf(".")); // 去掉文件后缀,只保留文件名
```
其中,lastIndexOf()方法返回指定字符在字符串中最后一次出现的位置,substring()方法则返回指定位置之间的子字符串。
阅读全文