本文共 4079 字,大约阅读时间需要 13 分钟。
com.qiniu qiniu-java-sdk [7.2.0, 7.2.99] com.google.code.gson gson 2.8.5
package com.learn.common.utils;import com.google.gson.Gson;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 java.util.Date;public class QiniuUploadUtil { private static final String accessKey = "ojcdZhgxHynIK7Va9DH2OGc9YG94lTzyAsCJn_8e8"; private static final String secretKey = "AFW9QSV8BAZ8p1vh_dKDm30BBybvIWAjAhQWUyMZ8"; private static final String bucket = "learn-bucket"; private static final String prix = "http://q3l7tcew1.bkt.clouddn.com/"; private UploadManager manager; public QiniuUploadUtil() { //初始化基本配置 Configuration cfg = new Configuration(Region.region2()); //创建上传管理器 manager = new UploadManager(cfg); } //文件名 = key //文件的byte数组 public String upload(String imgName , byte [] bytes) { Auth auth = Auth.create(accessKey, secretKey); //构造覆盖上传token String upToken = auth.uploadToken(bucket,imgName); try { Response response = manager.put(bytes, imgName, upToken); DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); //返回请求地址 return prix+putRet.key+"?t="+new Date().getTime(); } catch (Exception ex) { ex.printStackTrace(); } return null; }}
package com.learn.system.service;import com.learn.common.service.BaseService;import com.learn.common.utils.IdWorker;import com.learn.common.utils.QiniuUploadUtil;import com.learn.domain.company.Department;import com.learn.domain.system.Role;import com.learn.domain.system.User;import com.learn.system.client.DepartmentFeignClient;import com.learn.system.dao.RoleDao;import com.learn.system.dao.UserDao;import com.sun.org.apache.xml.internal.security.utils.Base64;import org.apache.shiro.crypto.hash.Md5Hash;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.data.domain.PageRequest;import org.springframework.data.jpa.domain.Specification;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import org.springframework.util.StringUtils;import org.springframework.web.multipart.MultipartFile;import javax.persistence.criteria.CriteriaBuilder;import javax.persistence.criteria.CriteriaQuery;import javax.persistence.criteria.Predicate;import javax.persistence.criteria.Root;import java.io.IOException;import java.lang.annotation.Target;import java.util.*;@Servicepublic class UserService extends BaseService{ @Autowired private UserDao userDao; @Autowired private RoleDao roleDao; @Autowired private IdWorker idWorker; public String uploadImage(String id, MultipartFile file) throws IOException { //1.根据id查询用户 User user = userDao.findById(id).get(); //2.将图片上传到七牛云存储,获取请求路径 String imgUrl = new QiniuUploadUtil().upload(user.getId(), file.getBytes());//上传图片名,图片的byte数组 //3.更新用户头像地址 user.setStaffPhoto(imgUrl); userDao.save(user); //4.返回 return imgUrl; }}
//1.解决跨域@CrossOrigin//2.声明restContoller@RestController//3.设置父路径@RequestMapping(value="/sys")public class UserController extends BaseController { @Autowired private UserService userService; @Autowired private PermissionService permissionService; @Autowired private JwtUtils jwtUtils; @Autowired private DepartmentFeignClient departmentFeignClient; @RequestMapping("/user/upload/{id}") public Result upload(@PathVariable String id,@RequestParam(name="file") MultipartFile file ) throws IOException { //1.调用service保存图片(获取到图片的访问地址(dataUrl | http地址)) String imgUrl = userService.uploadImage(id,file); //2.返回数据 return new Result(ResultCode.SUCCESS,imgUrl); }}
转载地址:http://dqkzb.baihongyu.com/