一,文件上传简介
文件上传,是指将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或下载的过程
文件上传前端页面三要素:
-
必须为POST请求
-
传输数据类型必须为
multipart/form-data默认传输数据的类型只会将文件的文件名传输过去。
设置完传
multipart/form-data之后,表单提交数据的方式会变成多个部分,每一个表单项就会分一段。分隔符就是
Content-Type里面显示: -
input的type为file
在服务端我们使用MultipartFile类型来接受上传的文件:
上传到服务端的文件,会根据分段,将数据保存到不同文件中。如上图,一个文件存username,一个存age,一个存file
二,本地存储
将文件保存到指定路径,调用MultipartFile里面的方法即可。
在SpringBoot中,文件上传默认单个文件允许最大大小为1M。如果需要更大,通过修改配置文件
spring:
servlet:
multipart:
#配置单个文件最大上传大小
max-file-size: 10MB
#配置单个请求最大上传大小(一次请求可以上传多个文件)
max-request-size: 100MB
MultipartFile其他方法:
String getOriginalFilename();//获取原始文件名void transferTo(File dest); //将接收的文件转存到磁盘文件中long getSize(); //获取文件的大小,单位: 字节bytel] getBytes(); //获取文件内容的字节数组InputStream getlnputStream0);//获取接收到的文件内容的输入流
三,云服务存储
**拿阿里云对象存储服务为例:**阿里云对象存储0SS (0bject Storage Service),是一款海量、安全、低成本、高可靠的云存储服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种文件。
第三方服务使用思路:
- 准备工作==>参照官方SDK编写入门程序==>集成使用
SDK:Software Development Kit 的缩写,软件开发工具包,包括辅助软件开发的依赖 (jar包)、代码示例等,都可以叫做SDK.
阿里云OSS使用步骤:
Bucket:存储空间是用户用于存储对象(Object,就是文件)的容器,所有的对象都必须隶属于某个存储空间。
具体的,阿里云有手册,直接查就好了。
也可以使用MinIo框架自己搭建一个分布式OSS