springboot+vue项目中如何利用七牛云实现头像的上传

这篇具有很好参考价值的文章主要介绍了springboot+vue项目中如何利用七牛云实现头像的上传。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

做了个前后端分离的项目,对于用户的头像修改一直不是很满意,

于是用了Vant4的组件库改成了文件点击上传,先是打算存到本地,了解到七牛云的方便后(主要是免费),决定改成七牛云存储图片,记录一下操作,方便查看复习

目录

一、七牛云

七牛云简介

七牛云使用

二、前端vue配置

三、后端springboot配置


一、七牛云

七牛云简介

七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化PaaS服务。围绕富媒体场景,七牛先后推出了对象存储,融合CDN加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

七牛云对象存储 Kodo 是七牛云提供的高可靠、强安全、低成本、可扩展的存储服务。您可通过控制台、API、SDK 等方式简单快速地接入七牛存储服务,实现海量数据的存储和管理。通过 Kodo 可以进行文件的上传、下载和管理。

总的来说:七牛云是为开发服务的云存储环境,可以在七牛云上托管静态文件资源,并且进行下载,还有很多七牛云的sdk。
具体有关七牛云的介绍可以参考开发文档:https://developer.qiniu.com/kodo
 

七牛云使用

首先去官网注册  七牛云

登录注册就不再说了,注册完毕之后,点击个人中心,进行身份认证

当身份认证完成之后,点左上角创建存储空间,点这个对象存储Kodo

springboot+vue项目中如何利用七牛云实现头像的上传

 点击空间管理,新建存储空间,

让你输入空间名称还有存储区域以及访问控制,按照要求填写即可

springboot+vue项目中如何利用七牛云实现头像的上传

现在就有了一个个人仓库了,系统会给我们分配一个测试域名,不过这个域名只有30天有效期,我们可以先用这个域名进行测试,后面来绑定自己的域名

点击空间管理,进入域名管理,即可以添加绑定域名

记住域名一定要是备案域名

springboot+vue项目中如何利用七牛云实现头像的上传

二、前端vue配置

这里本人用的是vant4组件

<template>
 <van-uploader v-model="fileList"  :before-read="beforeRead" :after-read="afterRead"/>
</template>

<script setup lang="ts">
const fileList = ref([
  {url: editUser.value.currentValue, isImage: true},
  // Uploader 根据文件后缀来判断是否为图片文件
  // 如果图片 URL 中不包含类型信息,可以添加 isImage 标记来声明

]);
console.log(fileList)
const beforeRead = (file: any) => {
  console.log(file+'jpg')
  if (file.type !== 'image/jpeg') {
    Toast('请上传 jpg 格式图片');
    return false;
  }
  return true;
};

const afterRead = (file: any) => {
  // 返回图片信息
  console.log(file);
  const ImgUploadFile = async (params: any) => {
    // 要把数据变成file格式
    const formData = new FormData(); // 下面有备注
    formData.append('file', params);
    console.log(formData)
    return await myAxios.post('/upload/img', formData, {
      headers: {
        // 注意修改请求头file格式
        'Content-Type': 'multipart/form-data',
      },
    });
  };
  ImgUploadFile(file.file)
  editUser.value.currentValue =  "你自己的域名/"+ file.file.name;
}
</script>

三、后端springboot配置

.在pom.xml添加七牛云依赖

        <!--七牛云上传-->
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>7.2.11</version>
        </dependency>
        <!-- 七牛云依赖Gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
        </dependency>

controller层

@Controller
@RequestMapping("upload")
public class uploadimg {
    @PostMapping("/img")
    @ResponseBody
    public void up1img(@RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
        if (file.isEmpty()) {
            return;
        }
        String fileName = file.getOriginalFilename();
        InputStream inputStream = file.getInputStream();
        QiniuOssUtils utils = new QiniuOssUtils();
        String upload = utils.upload(inputStream, fileName);
        System.out.println(upload);
    }
}

工具类方法,记得换成你自己的AK和CK以及域名

七牛云的配置信息都可以在个人中心拿到,其中AK和SK:点击密钥管理

import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

/**
 * 七牛OSS管理工具
 */
public class QiniuOssUtils {

    /**
     * 存储空间名
     */
    private static final String BUCKET = "空间名";
    /**
     * accessKey和secretKey
     */
    private static final String ACCESS_KEY = "AK";
    private static final String SECRET_KEY = "CK";
    /**
     * 外网访问地址(内置域名有效期只有30天)
     */
    private static final String BASE_URL = "域名+/";

    /**
     * 上传管理器
     */
    private UploadManager upload;
    /**
     * 桶管理器(存储空间管理器)
     */
    private BucketManager bucket;

    public QiniuOssUtils() {
        //创建配置对象
        Configuration cfg = new Configuration(Zone.zone2());
        //创建上传管理器
        upload = new UploadManager(cfg);
        //创建存储空间管理器
        bucket = new BucketManager(getAuth(), cfg);
    }

    /**
     * 返回认证器(包含的访问密钥)
     *
     * @return
     */
    private Auth getAuth() {
        return Auth.create(ACCESS_KEY, SECRET_KEY);
    }

    /**
     * 获取令牌对象(服务器返回的授权信息)
     *
     * @return
     */
    private String getToken() {
        return getAuth().uploadToken(BUCKET);
    }

    /**
     * 文件上传
     *
     * @param file
     * @return
     */
    public String upload(File file, String key) {
        try {
            return upload(new FileInputStream(file), key);
        } catch (FileNotFoundException | QiniuException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 上传文件
     *
     * @param is
     * @param key
     * @return
     * @throws QiniuException
     */
    public String upload(InputStream is, String key) throws QiniuException {
        //上传流
        Response response = upload.put(is, key, getToken(), null, null);
        //解析返回结果
        DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
        //将文件的访问地址返回
        return BASE_URL + putRet.key;
    }

    /**
     * 删除文件
     *
     * @param key
     */
    public void delete(String key) {
        try {
            bucket.delete(BUCKET, key);
        } catch (QiniuException e) {
            e.printStackTrace();
        }
    }
}

查看的话,可以在代码中修改,将图片路径存储到数据库中,

查看时到数据库中将路径查询出来,返给前端,前端拿到链接访问即可。

最终效果是这样

springboot+vue项目中如何利用七牛云实现头像的上传

springboot+vue项目中如何利用七牛云实现头像的上传

 我们也可以来看一下七牛云后台管理的图片信息

springboot+vue项目中如何利用七牛云实现头像的上传

 感谢你能看完,如果对你有帮助的话,点个赞支持下文章来源地址https://www.toymoban.com/news/detail-510318.html

到了这里,关于springboot+vue项目中如何利用七牛云实现头像的上传的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • vue+element ui上传图片到七牛云服务器

    vue+element ui上传图片到七牛云服务器

    本来打算做一个全部都是前端完成的资源上传到七牛云的demo,但是需要获取token,经历了九九八十一难,最终还是选择放弃,token从后端获取(springboot)。如果你们有前端直接能解决的麻烦记得私我哦!!! 效果展示 先看看文档: element ui :https://element.eleme.cn/#/zh-CN/compone

    2024年04月13日
    浏览(7)
  • 七牛云如何配置免费 https 阿里云SSL证书

    七牛云如何配置免费 https 阿里云SSL证书

    七牛云注册链接:https://s.qiniu.com/yaQ3am 我之前有个项目是走的 https,这个项目作了一些印刷品,二维码的内容就是 https 的,后来为了适配七牛云的图片服务,就改成了 http。导致再扫二维码的时候都会提示不安全。 以 https 地址进入网站,网站却服务在 http 的时候,证书不匹

    2024年02月07日
    浏览(38)
  • 【手把手教学】利用七牛云免费CDN服务为自己网站启用图片CDN加速 - 免费版10G/月

    【手把手教学】利用七牛云免费CDN服务为自己网站启用图片CDN加速 - 免费版10G/月

    A) 我的网站原图:       http://assets.xxx.com/ assets/img/banner.jpg B) 七牛CDN图片外链:http://cdn.xxx.com/ assets/img/banner.jpg ( 其中B指向七牛的个人存储空间的同路径文件C,如果C不存在或过期,七牛就会自动向A取图 ) 七牛的CDN与传统的CDN思路一样,例如免费的cloudflare、收费的Amazo

    2024年02月02日
    浏览(33)
  • Gin+微服务实现抖音视频上传到七牛云

    Gin+微服务实现抖音视频上传到七牛云

    如果你对Gin和微服务有一定了解,看本文较容易。 执行命令: Go SDK 的所有的功能,都需要合法的授权。授权凭证的签算需要七牛账号下的一对有效的 Access Key 和 Secret Key ,这对密钥可以通过如下步骤获得: 点击注册🔗开通七牛开发者帐号 如果已有账号,直接登录七牛开发

    2024年02月12日
    浏览(11)
  • SpringBoot集成阿里云OSS、华为云OBS、七牛云、又拍云等上传案例【附白嫖方案】【附源码】

    SpringBoot集成阿里云OSS、华为云OBS、七牛云、又拍云等上传案例【附白嫖方案】【附源码】

    唉!本文写起来都是泪点。不是刻意写的本文,主要是对日常用到的文件上传做了一个汇总总结,同时希望可以给用到的小伙伴带来一点帮助吧。 上传本地,这个就不水了,基本做技术的都用到过吧; 阿里云OSS,阿里云是业界巨鳄了吧,用到的人肯定不少吧,不过博主好久

    2024年02月22日
    浏览(10)
  • 使用(七牛云)为例子实现将文件上传到云服务器

    使用(七牛云)为例子实现将文件上传到云服务器

    目前,用户的头像、分享生成的长图等文件都是存放在本地的,我们可以将他们存放在云服务器中,此处我们使用七牛云作为例子示范。 创建账户并申请如下的两个bucket,分别是用户头像的存储空间和分享长图的存储空间。 相应的js文件: 文件已经存入七牛云

    2024年02月10日
    浏览(14)
  • vue2+wangEditor5富文本编辑器(图片视频自定义上传七牛云/服务器)

    vue2+wangEditor5富文本编辑器(图片视频自定义上传七牛云/服务器)

    1、安装使用 安装 在main.js中引入样式 在使用编辑器的页面引入js 模板 js  到这一步编辑器就可以正常显示了 2、上传图片、视频 上传到后台接口的可直接按照文档这个配置就行接口返回格式也要可文档上一致    2)自定义上传(一般上传到别的服务器上,我这边是上传到七

    2024年02月11日
    浏览(47)
  • 七牛云 图片存储

    七牛云 图片存储

    在项目中,如用户头像、文章图片等数据往往需要使用单独的文件存储系统来保存 企业中常见的存储方案有两种: a.搭建分布式存储系统, 如FastDFS 数据量非常大, 具备相应的运维管理人员 b.第三方存储 运维成本低, 安全可靠 七牛云作为老牌云存储服务商, 提供了优质的第三方

    2024年02月16日
    浏览(12)
  • uniapp 集成七牛云,上传图片

    uniapp 集成七牛云,上传图片

    4 相册选择照片,或者拍照后,使用上传代码

    2024年02月17日
    浏览(9)
  • 七牛云部署文件管理服务器

    七牛云部署文件管理服务器

    1.1 介绍 在实际开发中,我们会有很多处理不同功能的服务器。例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 分服务器处理的目的是让服务器各司其职,从而提高我们项目的运行效率。 常见的图片存

    2024年01月23日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包