MultipartFile :
MultipartFile
是 Spring Framework 提供的用于处理文件上传的接口。它定义了一系列方法来获取上传文件的相关信息和内容。以下是一些常用的 MultipartFile
接口的方法:
-
String getName()
: 获取表单中文件上传字段的名称。 -
String getOriginalFilename()
: 获取上传文件的原始文件名。 -
String getContentType()
: 获取上传文件的内容类型(MIME 类型)。 -
boolean isEmpty()
: 判断上传的文件是否为空文件。 -
long getSize()
: 获取上传文件的大小,单位为字节。 -
byte[] getBytes()
: 将上传文件的内容读取为字节数组。 -
InputStream getInputStream()
: 获取上传文件的输入流,用于读取文件内容。 -
void transferTo(File dest)
: 将上传文件保存到指定的目标文件中。
其中常用的有:getOriginalFilename(),该方法可以
获取上传文件的原始文件名,然后我们根据文件名的扩展名来判断文件类型或进行文件处理。
示例:
@PostMapping("/upload")
public Result upload(String username, Integer age, MultipartFile image) throws IOException {
//获取原始文件名,例如:
String originalFilename = ();
//构造唯一的文件名(是文件名不会重复)--uuid(通用唯一识别码)
int index = (".");//返回“.”最后一次出现的位置索引
String extname = (index);//获取上传文件的格式名,如“jpg”
String newFileName = ().toString() + extname;//对文件名进行拼接
("新文件名:{}",newFileName);
//将文件存储在本地的磁盘目录当中,这里我设置为F:\image
(new File("F:\\image\\" + newFileName));
return ();
}
实例中,先使用getOriginalFilename()获取原始文件名,然后使用lastIndexOf()获取指定字符最后一次出现的位置索引,由此获取其文件格式名"extname",接着将其与随机获取且唯一的uuid进行拼接获得新文件名。
lastIndexOf()用法:
lastIndexOf
是 Java 字符串类 中的方法,用于查找指定字符或子字符串在字符串中最后一次出现的位置索引。其用法如下:
-
lastIndexOf(int ch)
:查找字符在字符串中最后一次出现的位置索引,如果未找到则返回 -1。 -
lastIndexOf(int ch, int fromIndex)
:从指定位置fromIndex
开始向前查找字符在字符串中最后一次出现的位置索引,如果未找到则返回 -1。 -
lastIndexOf(String str)
:查找子字符串在字符串中最后一次出现的位置索引,如果未找到则返回 -1。 -
lastIndexOf(String str, int fromIndex)
:从指定位置fromIndex
开始向前查找子字符串在字符串中最后一次出现的位置索引,如果未找到则返回 -1。
其中,ch
表示要查找的字符的 ASCII 值,fromIndex
表示开始查找的位置索引(从0开始计数),str
表示要查找的子字符串。
2)