1、加载pom依赖包(根据需求引入版本依赖)
代码编写文位置名称:pom.xml
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.2.0, 7.2.99]</version>
</dependency>
2、封装上传到七牛云的方法(需要新建方法类)
方法名称:QiniuCloudUtil.java
package com.example.supermarket.project.config;
import com.alibaba.druid.util.StringUtils;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import java.io.File;
import java.io.IOException;
/**
* @author dsn
* @createTime 07 21:07
* @description 七牛云工具
*/
public class QiniuCloudUtil {
//设置需要操作的账号的AK和SK
private static final String ACCESS_KEY = "*******";
private static final String SECRET_KEY = "*******";
// 要上传的空间名
private static final String bucketname = "******";
// 密钥
private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//上传方法 file文件 key上传到七牛云的名称
public static String upload(File file,String key) throws IOException {
// 创建上传对象,Zone*代表地区 zoneAs0东南亚
Configuration configuration = new Configuration(Zone.zoneAs0());
UploadManager uploadManager = new UploadManager(configuration);
try {
// 调用put方法上传
String token = auth.uploadToken(bucketname);
if(StringUtils.isEmpty(token)) {
System.out.println("未获取到token,请重试!");
return null;
}
Response res = uploadManager.put(file,key,token);
// 打印返回的信息
if (res.isOK()){
return key;
}
}catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
e.printStackTrace();
System.out.println("error "+r.toString());
try {
// 响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
System.out.println("error "+e1.error());
}
}
return null;
}
}
3、提供前端调用接口
代码位置名称:自己定义类,将下面的方法放入进行上传。
/**
* 上传图片到七牛云
* @param file
* @return
*/
@PostMapping(value = "upload")
@ResponseBody
public String upload(MultipartFile file) {
String fileName=null;
JSONObject rejsonObj = new JSONObject();
try {
//获取路径后缀
String fileUrl = file.getOriginalFilename();
String[] strs = fileUrl.split("\\.");
String regex = "."+strs[strs.length-1];
//拼接文件名称 我的时使用uuid命名的
String imageName = UUID.randomUUID().toString()+regex;
System.out.println("File name = "+imageName);
//转存传输的文件到指定路径
File files = File.createTempFile("tmp", imageName);
file.transferTo(files);
//将转存的文件存入七牛云
fileName = QiniuCloudUtil.upload(files,imageName);
System.out.println("fileName =="+fileName);
if (fileName != null){
fileName="**********"+fileName;//***** 设置七牛云的访问域名
rejsonObj.put("code",200);
rejsonObj.put("url",fileName);
}
//在JVM进程退出的时候删除文件,临时文件的删除
files.deleteOnExit();
} catch (IOException e) {
rejsonObj.put("code",500);
rejsonObj.put("msg","上传失败");
e.printStackTrace();
}
return rejsonObj.toJSONString();
}