今天看公司项目,有用到这个类,正好自己不理解,来记录学习一下
先看概念🙌
官方概念:在Java中,MultipartFile
类是Spring框架提供的一个接口,用于处理上传的文件。这个接口主要用于Web应用程序,允许用户通过表单上传文件到服务器。MultipartFile
提供了读取上传文件内容、获取文件名、文件类型等信息的方法。
说人话😁:就是Spring Web MVC 的依赖下的一种处理上传文件的类
学点API😊
getInputStream()
: 返回一个InputStream
对象,可以用来读取文件内容。getOutputStream()
: 返回一个OutputStream
对象,可以用来写入文件内容,但通常不用于上传文件。getSize()
: 返回文件的大小,以字节为单位。isEmpty()
: 检查文件是否为空(即是否没有上传文件)。
先对这些有印象吧,以后在实践中学习😁
直接实践😎
导入依赖
xml
<dependencies>
<!-- Spring Web MVC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 如果需要,添加其他 Spring Boot Starter 依赖 -->
</dependencies>
添加依赖后,你还可以在 Spring Boot 应用中启用文件上传的配置。不过Spring Boot 是默认支持文件上传的,
但是如果你需要自定义文件上传的配置,比如设置文件的最大大小,你可以在 application.properties
或 application.yml
文件中进行配置,例如在 application.properties
文件中:
ini
# 设置文件上传的最大大小为10MB
spring.servlet.multipart.max-file-size=10MB
# 设置总请求大小的最大值
spring.servlet.multipart.max-request-size=10MB
简单Demo
下面是使用 MultipartFile
的一个简单例子:
kotlin
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
@RestController
public class FileUploadController {
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
// 获取文件名
String filename = file.getOriginalFilename();
// 获取文件的MIME类型
String contentType = file.getContentType();
// 获取文件大小
long fileSize = file.getSize();
// 保存文件
file.transferTo(new File("path/to/your/upload/directory/" + filename));
return "File uploaded successfully. Filename: " + filename + ", Size: " + fileSize + " bytes";
} catch (IOException e) {
e.printStackTrace();
return "File upload failed.";
}
} else {
return "No file was uploaded.";
}
}
}
别急🙌,慢慢分析一下这段代码: 首先它的入参是MultipartFile类型的,表明接收一个文件类,然后通过几种常见的Api获取了它的文件名、MIME类型,然后使用transferTo方法将文件保存起来
没了,跟简单
工程实践
正好看一下公司是怎么使用的:
看代码:
ini
inputStream = params.getFile().getInputStream();
//获取excel表格
List<HashMap<String, List<String>>> excelValueMapList = easyExcelService.getExcelValueMap(inputStream);
公司是获取这个文件的流,然后通过公司的工具类将其转换为对应的表格类型,进行下一步的处理
结束!💕💕💕
总的来说,这种Api的使用,见一个学一个就是了