Springboot接口如何接收多个文件以及如何将其保存到服务器
作者:缴鸿剑Jackson
本文给大家介绍了Springboot接口如何接收多个文件以及如何将其保存到服务器,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
一.接收多个文件(即接收文件List)
1.核心思路:使用post请求、List<MultipartFile>,就可以接收文件list
2.代码编写
@Api(tags = "测试接口")
@RestController
@RequestMapping("/test")
public class TestController {
@PostMapping("/hello")
public String hello(@RequestParam("files") List<MultipartFile> files) {
if(files == null || files.isEmpty()){
return "请选择至少一个文件";
}
for(MultipartFile file : files){
if(!file.isEmpty()){
//获取文件名
String originalFilename = file.getOriginalFilename();
//获取文件大小(单位是B,即Byte字节)
long fileSize = file.getSize();
//获取文件类型
String fileType = file.getContentType();
//日志输出到控制台
System.out.println("成功接收文件:"+ originalFilename +",文件大小为:"+fileSize+",文件类型为:"+fileType);
}
}
return "成功接收"+files.size()+"个文件!";
}
}3.使用apifox发送请求该接口,传入多个文件
如下图,我们要注意几点:
- 要发送post请求
- 参数要选择Body->form-data

①思考:为什么发送文件,请求类型一定要选择Post?传参一定要选择Body->form-data?
- 由于文件只能放到Body中,而Get请求不支持Body传参,所以只能使用Post请求
- 由于文件上传必须使用
multipart/form-data编码格式,这是 HTTP/1.1 协议(RFC 7578)规定的标准方式。所以传文件时,参数要选择Body->form-data
②报错原因分析:Maximum upload size exceeded(超过最大上传限制)
上传文件list的场景中,Spring Boot默认值为:
- 单个文件的大小上限:1MB
- 单次请求的文件总大小上限:10MB




这是我们上述传的四个文件,可见此时该次请求的总文件大小也就3~4MB,没问题符合要求,但是“双录测试视频.mp4”这个文件,超出了单个文件大小上限(1MB)。因此我们要设置一下这个上限,调大点。
4.配置:调整上传文件的大小限制
如下图,我们此时提高了文件大小的上限:
- 单个文件大小的上限提升至20MB
- 单次请求的文件总大小上限提升至50MB

5.再次使用apifox发送请求,传入多个文件

可以去控制台,查看一下上传的日志:

注意:file.getSize()这个方法,获取的文件大小的单位是Byte(即字节)。
二.将接收的文件,保存到本地/服务器
1.添加如下图的两段代码

2.使用apifox,发送请求,测试一下

3.查看本机的指定目录,是否多出了这四个文件

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~
到此这篇关于Springboot接口如何接收多个文件以及如何将其保存到服务器的文章就介绍到这了,更多相关springboot接收多个文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- Springboot接收文件报错Required request part‘file‘is not present问题分析及解决
- SpringBoot controller接收txt文本文件实现方式
- Springboot上传文件的同时传递参数用对象接收的问题及解决方案
- springboot如何接收复杂参数(同时接收JSON与文件)
- springboot接收excel数据文件去重方式
- 在springboot项目中同时接收文件和多个参数的方法总结
- Springboot接收文件与发送文件实例教程
- 用SpringBoot框架来接收multipart/form-data文件方式
- SpringBoot文件上传同时接收复杂参数的过程详解
- SpringBoot中实现接收文件和对象
