SpringBoot实现上传存储图片到七牛云服务器并回显至前端页面()

  本篇文章为你整理了SpringBoot实现上传存储图片到七牛云服务器并回显至前端页面()的详细内容,包含有 SpringBoot实现上传存储图片到七牛云服务器并回显至前端页面,希望能帮助你了解 SpringBoot实现上传存储图片到七牛云服务器并回显至前端页面。

  问题描述:

  当图片存在本地时会出现卡顿的现象。比如一篇图文混排的文章,如果图片没有加载完,可能整个文章都显示不出来,因为它们都是用的同一个服务器。

  但是如果把图片单独拿出来放在云服务器上进行加载,这样图片的加载和文字的加载互不干扰,就可以优化这个问题。

  首先要到七牛云官网注册账号并登陆

  ​ 这是官网:https://www.qiniu.com/

  
登录之后在右上角找到【控制台】选项,第一次进入的话是没有存储空间的,所以需要新建一个存储空间。

  
左上角的名字就是你存储空间的名字【对应下面 utils 代码中的 bucket 变量的值,这个值需要改成你自己设置的存储空间名字】

  存储区域需要注意,我选择的是华北【在 utils 代码中对应 Configuration cfg = new Configuration(Region.huabei()); 这个部分,需要把Region对象的配置类指定为你选择的区域】

  访问控制需要设置为公开

  右下角是公开访问的域名

  
public Result upload(@RequestParam("image") MultipartFile file){

   String fileName = UUID.randomUUID().toString() + "." + StringUtils.substringAfterLast(file.getOriginalFilename(), ".");

   boolean upload = qiniuUtils.upload(file, fileName);

   if (upload){

   return Result.success(QiniuUtils.url + fileName);

   return Result.fail(7777,"上传失败");

  

 

 

  二、utils

  

@Component

 

  public class QiniuUtils {

   public static final String url = "【放你自己的网址】";

   @Value("${qiniu.accessKey}")

   private String accessKey;

   @Value("${qiniu.accessSecretKey}")

   private String accessSecretKey;

   public boolean upload(MultipartFile file, String fileName){

   //构造一个带指定 Region 对象的配置类

   Configuration cfg = new Configuration(Region.huabei());

   //...其他参数参考类注释

   UploadManager uploadManager = new UploadManager(cfg);

   //...生成上传凭证,然后准备上传

   String bucket = "【放你自己的存储空间名】";

   //默认不指定key的情况下,以文件内容的hash值作为文件名

   try {

   byte[] uploadBytes = file.getBytes();

   Auth auth = Auth.create(accessKey, accessSecretKey);

   String upToken = auth.uploadToken(bucket);

   Response response = uploadManager.put(uploadBytes, fileName, upToken);

   //解析上传成功的结果

   DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class);

   return true;

   } catch (Exception ex) {

   ex.printStackTrace();

   return false;

  

 

  三、properties

  

qiniu.accessKey=[填你的密码]

 

  qiniu.accessSecretKey=[填你的秘钥]

  # 上面两个的值在七牛云服务器的空间管理那里找得到

  ## 上传文件总的最大值

  spring.servlet.multipart.max-request-size=70MB

  ## 单个文件的最大值

  spring.servlet.multipart.max-file-size=17MB

  

 

  秘钥可以在如下图的位置获取:

  三、实现流程

  简单说一下实现的过程是怎样的:

  
首先由客户端向服务器发起一个请求,这个文件的内容被MultipartFile file 作为参数传递到controller中。

  


 String fileName = UUID.randomUUID().toString() + "." + StringUtils.substringAfterLast(file.getOriginalFilename(), ".");

 

  

 

  
utils中的这段代码需要的两个值,一定要在application.properties中配置上,不然识别不到!

  
最后在controller中返回拼接好的图片访问链接就大功告成了!

  

return Result.success(QiniuUtils.url + fileName);

 

  

 

  以上就是SpringBoot实现上传存储图片到七牛云服务器并回显至前端页面()的详细内容,想要了解更多 SpringBoot实现上传存储图片到七牛云服务器并回显至前端页面的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: