看一下我们的需求:
接口文档:
分析思路:
现在我们先实现后端先:
实操:
一.存储到本地磁盘:
1.Controller
创建一个FileUploadController类
package org.huangyingyuan.controller;import org.huangyingyuan.pojo.Result;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.util.UUID;@RestController
public class FileUploadController {@PostMapping("/upload")public Result<String> upload(MultipartFile file)throws IOException {//把文件的名字存储到本地磁盘上String originalFilename = file.getOriginalFilename();//保证文件的名字是唯一的,从而防止文件覆盖(设置一个UUID作为文件名然后加上原文件名的后缀)String fileName= UUID.randomUUID().toString()+originalFilename.substring(originalFilename.lastIndexOf("."));//本地文件的存储地址file.transferTo(new File("E:\\Big_event_file"));return Result.success("访问成功......");}
}
2.测试成功
二.存储到腾讯云CSS
我们将这么多的文件直接存储在我们的电脑下,会导致我们的电脑出现磁盘爆满、别人无法直接访问等问题、那么我们就要将文件上传到云端才能解决这个问题。
什么是云?
云服务:
操作:
腾讯云-使用步骤:
1.创建账号
省略
2.创建存储桶
创建成功:
3.创建访问密钥(Access key)
4.查看SDK文献
我们了解一下关于JAVA的sdk是如何配置操作的:
SDK 中心 Java_腾讯云
4.1导入依赖
<!--腾讯云COS对象存储SDK--><dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.54</version></dependency>
4.2创建test测试类
记得替换掉里面你自己的信息
package org.huangyingyuan;
import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.region.Region;
import java.io.File;public class OSS_Demo {public static void main(String[] args) {// 1. 初始化用户身份信息String secretId = "你的SecretId";String secretKey = "你的SecretKey";COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);// 2. 设置 bucket 所在的区域Region region = new Region("ap-guangzhou"); // 替换成你的地域ClientConfig clientConfig = new ClientConfig(region);// 3. 创建 COS 客户端COSClient cosClient = new COSClient(cred, clientConfig);// 4. 指定上传文件String bucketName = "mybucket-12345678"; // 替换为你的 BucketString key = "upload/test.jpg"; // 存储在 COS 中的路径File localFile = new File("C:/Users/you/Desktop/test.jpg");PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);cosClient.putObject(putObjectRequest);System.out.println("上传成功!");// 5. 关闭客户端cosClient.shutdown();}
}
5.上传成功:
直接启动项目
我们检查一下储存桶里面有没有照片:
有的 兄弟 有的,说明案例成功