Springboot接口如何接收多个文件?如何将其保存到服务器?一文详解
目录一.接收多个文件即接收文件List1.核心思路使用post请求、List 就可以接收文件list2.代码编写3.使用apifox发送请求该接口传入多个文件①思考为什么发送文件请求类型一定要选择Post传参一定要选择Body-form-data?②报错原因分析Maximum upload size exceeded超过最大上传限制4.配置调整上传文件的大小限制5.再次使用apifox发送请求传入多个文件二.将接收的文件保存到本地/服务器1.添加如下图的两段代码2.使用apifox发送请求测试一下3.查看本机的指定目录是否多出了这四个文件一.接收多个文件即接收文件List1.核心思路使用post请求、ListMultipartFile就可以接收文件list2.代码编写Api(tags 测试接口) RestController RequestMapping(/test) public class TestController { PostMapping(/hello) public String hello(RequestParam(files) ListMultipartFile 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单次请求的文件总大小上限提升至50MB5.再次使用apifox发送请求传入多个文件可以去控制台查看一下上传的日志注意file.getSize()这个方法获取的文件大小的单位是Byte即字节。二.将接收的文件保存到本地/服务器1.添加如下图的两段代码2.使用apifox发送请求测试一下3.查看本机的指定目录是否多出了这四个文件以上就是本篇文章的全部内容喜欢的话可以留个免费的关注呦~~~