spring-mvc文件云存储功能

it2024-11-22  15

基于ssm框架的文件云存储

1. 注册七牛云,创建自己的云空间2.在七牛云上复制自己需要的参数3 . 使用spring-boot快速搭建开发框架,创建一个spring-boot项目4 . 在项目中pom文件中添加七牛云的依赖5 . 创建一个接口用来配置七牛云的秘钥参数6 . 创建一个工具类,实现文件上传的功能7 . controller接收文件8. 前端发送文件到后端

1. 注册七牛云,创建自己的云空间

2.在七牛云上复制自己需要的参数

3 . 使用spring-boot快速搭建开发框架,创建一个spring-boot项目

4 . 在项目中pom文件中添加七牛云的依赖

<!--七牛服务器--> <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.2.28</version> </dependency> <!--Gson包--> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency>

5 . 创建一个接口用来配置七牛云的秘钥参数

public interface QiNiuSA { // 七牛AK public static final String ACCESSKEY = "S1x-FTuiDmPCjSLc5m4Sj_vI54DMEH0c-UlnRYsw"; // 七牛SK public static final String SECRETKEY = "83rkx7JiVJhtKSoMsi4NWFLzKEagYb2p4OoGYSyI"; // 七牛存储空间名 public static final String BUCKET = "gw-j2005"; // 七牛默认域名 public static final String DOMAIN = "http:/qij47bjgg.hn-bkt.clouddn.com"; }

6 . 创建一个工具类,实现文件上传的功能

此处主要注意包是否导入正确;我们使用的是七牛云的包

import com.google.gson.Gson; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.Random; import java.util.UUID; /*上传*/ public class QiNiuUpload { //1 .设置好账号的ACCESS_KEY和SECRET_KEY//从七牛云的官网登录后可以获得 //ak,sk用来登录七牛云 private static String ACCESS_KEY = QiNiuSA.ACCESSKEY; private static String SECRET_KEY = QiNiuSA.SECRETKEY; //2. 要上传的空间//对应要上传到七牛上,自己创建的那个空间(注意设置公开) private static String bucketname = QiNiuSA.BUCKET; //3. 获得上传的凭证 private static Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); private static Configuration cfg = new Configuration(Region.huanan()); //4. 根据上传凭证获得上传对象,我们通过上传对象来上传文件 private static UploadManager uploadManager = new UploadManager(cfg); //5. 上传的方法 // 传入需要上传的文件,返回一个字符串的路径,表示当前文件在七牛云的存放位置 public static String uploadFile(MultipartFile file) { try { // 5.1 获取上传文件的原始名字 String orderFilename = file.getOriginalFilename(); // 5.2 截取末尾的文件格式,组成新名字 String fileName = UUID.randomUUID().toString() + orderFilename.substring(orderFilename.lastIndexOf(".")); //5.3 上传的文件字节数组,字节流上传 byte[] bytes = file.getBytes(); String token = auth.uploadToken(bucketname); //5.4 开始上传 Response response = uploadManager.put(bytes, fileName, token); // 5.5 获得七牛云返回的gosn数据并解析成字符串 DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); System.out.println(putRet.key); System.out.println(putRet.toString()); //5.6 重新组织文件的存储路径并返回 return QiNiuSA.DOMAIN + "/" + fileName; } catch (QiniuException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }

7 . controller接收文件

以上工作准备好以后,我们只需要获得一个文件,而后端一般是通过controller来与前端交互. 因此我们需要创建一个数据接口用来接收数据并返回;

@RestController public class UpLoad{ //上传文件的接口 @RequestMapping(value = "/upload", method = RequestMethod.POST) public String upload(MultipartFile file) { //调用刚写好的工具类 , 将文件传至七牛云上,返回完整的url地址 String filePath = QiNiuUpload.uploadFile(file); return filePath; } }

在获得文件的存放地址以后,将这个字符串存放到我们的数据库中,实现文件上传

8. 前端发送文件到后端

前端发送文件的方式有很多种,看这里

最新回复(0)