博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
七牛云存储:实现员工头像保存
阅读量:2161 次
发布时间:2019-05-01

本文共 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/

你可能感兴趣的文章
Leetcode C++ 《拓扑排序-1》20200626 207.课程表
查看>>
Go语言学习Part1:包、变量和函数
查看>>
Go语言学习Part2:流程控制语句:for、if、else、switch 和 defer
查看>>
Go语言学习Part3:struct、slice和映射
查看>>
Go语言学习Part4-1:方法和接口
查看>>
Leetcode Go 《精选TOP面试题》20200628 69.x的平方根
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>
【Python】关于Python多线程的一篇文章转载
查看>>