一、文件上传(存储到本地磁盘)
(一)前端
<form action="/upload" method="post" enctype="multipart/form-data">
头像:<input type="file" name="image"> <br>
<input type="submit" value="提交">
</form>
前端页面三要素
(二)后端
String getOriginalFilename();//获取原始文件名 void transferTo(File dest);//将接受的文件转存到磁盘文件中 long getSize();//获取文件的大小,单位:字节 byte[] getBytes();//获取文件内容的字节数组 InputStream getInputStream();//获取接收到的文件内容的输入流
后端MultipartFile
(三)实现(会产生文件覆盖)
在controller包里面创建一个java文件FileUploadController(文件上传)
@RestController public class FileUploadController { @PostMapping("/upload") public Result<String> upload(MultipartFile file) throws IOException { //把文件的内容存储到本地磁盘上 String originalFilename = file.getOriginalFilename(); file.transferTo(new File("要存到的文件路径"+originalFilename)); return Result.success("url访问地址..."); } }
记得在要存到文件路劲的时候最后要加\\,这样才能把文件存到想存到的文件夹里面
例如:D:\\桌面\\file\\
(四)实现(解决文件覆盖)
在controller包里面创建一个java文件FileUploadController(文件上传)
@RestController public class FileUploadController { @PostMapping("/upload") public Result<String> upload(MultipartFile file) throws IOException { //把文件的内容存储到本地磁盘上 String originalFilename = file.getOriginalFilename(); //保证文件的名字是唯一的,从而防止文件覆盖 String filename = UUID.randomUUID().toString()+originalFilename.substring( originalFilename.lastIndexOf(".")); file.transferTo(new File("要存到的文件路径"+originalFilename)); return Result.success("url访问地址..."); } }
二、文件上传(上传到云端服务器)
云端:通俗来说就是互联网上有很多的计算机,计算机提供很多服务比如:云计算、云短信、云存储;提供这些服务的公司有:阿里巴巴(国内最大的云服务提供商)、华为、百度、网易等。
阿里云OSS:阿里云对象存储OSS(Object Storage Service),是一款海量、安全、低成本、高可靠的云存储服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的文件。
(一)第三方服务-通用思路
1.准备工作2.参照官方SDK(Software Development Kit,软件开发工具包)3.集成使用
注册登录(实名认证)---- 充值 --- 开通对象存储服务(OSS)--- 创建bucket --- 获取AccessKey(秘钥)--- 参照官方SDK编写入门程序 --- 案例集成OSS
创建阿里云完成过后,在阿里云里面安装SDK,因为我是写项目,可以直接通过Maven项目加入依赖。阿里云依赖坐标如下:
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.15.1</version> </dependency>
具体修改过程可以参考相关网上的资源。