• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

七牛云上传图片,只需十分钟

武飞扬头像
Jiawen01
帮助1

1、去七牛云注册,建好自有空间

学新通

2、导入依赖

  1.  
    <dependency>
  2.  
    <groupId>com.qiniu</groupId>
  3.  
    <artifactId>qiniu-java-sdk</artifactId>
  4.  
    <version>[7.7.0, 7.7.99]</version>
  5.  
    </dependency>

3、我这里是服务器直传,将本地的图片上传到七牛云托管,建好QiniuUtils工具类

  1.  
    package com.mszlu.blog.util;
  2.  
     
  3.  
    import com.alibaba.fastjson.JSON;
  4.  
    import com.qiniu.http.Response;
  5.  
    import com.qiniu.storage.Configuration;
  6.  
    import com.qiniu.storage.Region;
  7.  
    import com.qiniu.storage.UploadManager;
  8.  
    import com.qiniu.storage.model.DefaultPutRet;
  9.  
    import com.qiniu.util.Auth;
  10.  
    import org.apache.commons.lang3.StringUtils;
  11.  
    import org.springframework.beans.factory.annotation.Value;
  12.  
    import org.springframework.stereotype.Component;
  13.  
    import org.springframework.web.multipart.MultipartFile;
  14.  
     
  15.  
    @Component
  16.  
    public class QiniuUtils {
  17.  
     
  18.  
    public static final String url = "http://rpe08rotl.hn-bkt.clouddn.com/"; //改成你的外链域名
  19.  
     
  20.  
    @Value("${qiniu.accessKey}")
  21.  
    private String accessKey;
  22.  
    @Value("${qiniu.accessSecretKey}")
  23.  
    private String accessSecretKey;
  24.  
     
  25.  
     
  26.  
    public boolean upload(MultipartFile file,String fileName){
  27.  
     
  28.  
     
  29.  
    //构造一个带指定 Region 对象的配置类
  30.  
    Configuration cfg = new Configuration(Region.huanan()); //改成你设置的区域,我是华南huanan
  31.  
    //...其他参数参考类注释
  32.  
    UploadManager uploadManager = new UploadManager(cfg);
  33.  
    //...生成上传凭证,然后准备上传
  34.  
    String bucket = "mszlu-jia"; //改成你的bucket名称
  35.  
    //默认不指定key的情况下,以文件内容的hash值作为文件名
  36.  
    try {
  37.  
    byte[] uploadBytes = file.getBytes();
  38.  
    Auth auth = Auth.create(accessKey, accessSecretKey);
  39.  
    String upToken = auth.uploadToken(bucket);
  40.  
    Response response = uploadManager.put(uploadBytes, fileName, upToken);
  41.  
    //解析上传成功的结果
  42.  
    DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class);
  43.  
    return true;
  44.  
    } catch (Exception ex) {
  45.  
    ex.printStackTrace();
  46.  
    }
  47.  
    return false;
  48.  
    }
  49.  
    }
学新通

注意点:改成你自己的url、区域和bucket名称!!!!!!!

4、去application.yml文件配置密钥accessKey和accessSecretKey

  1.  
    qiniu.accessKey=PL0iXbQMO465******************* //改成你自己的
  2.  
    qiniu.accessSecretKey=itupVOK2******************** //改成你自己的

ps:密钥在七牛云中复制:点个人头像-密钥管理

学新通

5、去application.yml文件配置文件最大值

  1.  
    # 上传文件总的最大值
  2.  
    spring.servlet.multipart.max-request-size=20MB
  3.  
    # 单个文件的最大值
  4.  
    spring.servlet.multipart.max-file-size=5MB5

6、Controller层代码

  1.  
    package com.mszlu.blog.controller;
  2.  
     
  3.  
     
  4.  
    import com.mszlu.blog.util.QiniuUtils;
  5.  
    import com.mszlu.blog.vo.Result;
  6.  
    import org.apache.commons.lang3.StringUtils;
  7.  
    import org.springframework.beans.factory.annotation.Autowired;
  8.  
    import org.springframework.web.bind.annotation.PostMapping;
  9.  
    import org.springframework.web.bind.annotation.RequestMapping;
  10.  
    import org.springframework.web.bind.annotation.RequestParam;
  11.  
    import org.springframework.web.bind.annotation.RestController;
  12.  
    import org.springframework.web.multipart.MultipartFile;
  13.  
     
  14.  
    import java.util.UUID;
  15.  
     
  16.  
    @RestController
  17.  
    @RequestMapping("upload")
  18.  
    public class UploadController {
  19.  
     
  20.  
    @Autowired
  21.  
    private QiniuUtils qiniuUtils;
  22.  
     
  23.  
    @PostMapping
  24.  
    public Result upload(@RequestParam("image") MultipartFile file){
  25.  
    String originalFilename = file.getOriginalFilename();
  26.  
    //唯一的文件名称 使用UUID
  27.  
    String fileName = UUID.randomUUID().toString() "." StringUtils.substringAfterLast(originalFilename,".");
  28.  
     
  29.  
    //上传文件 长传到哪呢? 七牛云
  30.  
    boolean upload = qiniuUtils.upload(file, fileName);
  31.  
    if(upload){
  32.  
    return Result.success(QiniuUtils.url fileName);
  33.  
    }
  34.  
    return Result.fail(2001,"上传失败");
  35.  
    }
  36.  
     
  37.  
    }
学新通

7、测试

学新通
学新通
学新通

七牛云接收图片成功

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgjhbcg
系列文章
更多 icon
同类精品
更多 icon
继续加载