讲解如下:
准备工作
首先,我们需要创建一个Spring Boot项目,可以使用选择依赖的方式选择web
、lombok
和devtools
三个依赖,如下所示:
<!-- Spring Web 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Lombok 依赖,用于简化实体类的编写 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- SpringBoot DevTools 依赖,用于自动重启应用程序 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
接收文件
在Spring Boot中,接收Multipart/form-data类型的文件非常简单,只需要在Controller的方法中添加一个MultipartFile
类型的参数即可,Spring Boot会自动将上传的文件封装为MultipartFile对象。
示例代码如下:
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "上传失败,请选择文件";
}
try {
byte[] bytes = file.getBytes();
// 此处可以将字节流保存到本地文件或者其他云存储中
// ...
return "上传成功";
} catch (IOException e) {
e.printStackTrace();
return "上传失败";
}
}
在上面的示例中,我们定义了一个POST请求,请求URL为/upload
,请求参数中包含一个file
字段,类型为MultipartFile
。在controller中,如果文件为空,就返回上传失败的提示信息。如果文件不为空,就获取文件字节数组,并进行后续处理,比如将文件保存到本地或者云存储中。
接收多个文件
如果需要同时接收多个文件,在Controller的方法中可以添加多个MultipartFile
类型的参数,注意参数名称必须不同。
示例代码如下:
@PostMapping("/batch-upload")
public String batchUploadFile(@RequestParam("file1") MultipartFile file1,
@RequestParam("file2") MultipartFile file2) {
if (file1.isEmpty() || file2.isEmpty()) {
return "上传失败,文件不能为空";
}
try {
byte[] bytes1 = file1.getBytes();
byte[] bytes2 = file2.getBytes();
// 此处可以将字节流保存到本地文件或者其他云存储中
// ...
return "上传成功";
} catch (IOException e) {
e.printStackTrace();
return "上传失败";
}
}
在上面的示例中,我们定义了一个POST请求,请求URL为/batch-upload
,请求参数中包含两个字段,分别为file1
和file2
,类型为MultipartFile
。在controller中,如果有一个或者多个文件为空,就返回上传失败的提示信息。如果文件都不为空,就获取文件字节数组,并进行后续处理,比如将文件保存到本地或者云存储中。
以上就是用Spring Boot框架来接收multipart/form-data文件方式的攻略,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用SpringBoot框架来接收multipart/form-data文件方式 - Python技术站