腾讯云COS+ElmentUI+SpringBoot视频上传功能实现

news2024/11/24 18:50:14

文章目录

      • 第一步:选择合适的组件并整合到项目中
      • 第二步:前端校验
      • 第三步:绑定上传成功方法
      • 第四步:腾讯云cos后端接口配置

今天在做项目的时候需要完成一个视频上传的功能,这里做一个记录!

第一步:选择合适的组件并整合到项目中

image-20230422181254656

<el-upload
  class="upload-demo"
  drag
  action="https://jsonplaceholder.typicode.com/posts/"
  multiple>
  <i class="el-icon-upload"></i>
  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>

第二步:前端校验

同时在这里我修改了action,这个是我自己的视频上传接口,在实现的时候,你也需要完成这样一个后端接口做对接,后面会详细说明!
image-20230422181448227

:before-upload="beforeAvatarUpload"

方法实现: 这里限制了视频大小不超过200MB,同时仅支持mp4格式

beforeAvatarUpload(file) {
      this.fullscreenLoading = true
      const isJPG = file.type === 'video/mp4'
      const isLt2M = file.size / 1024 / 1024 < 200
      if (!isJPG) {
        this.$message.error('上传头像图片只能是 MP4 格式!')
      }
      if (!isLt2M) {
        this.$message.error('上传头像图片大小不能超过 200MB!')
      }
      return isJPG && isLt2M
},

第三步:绑定上传成功方法

image-20230422182606050

image-20230422182728065

  handleSuccess(response, file, fileList) {
      this.vidio.url1 = response.message
      this.fullscreenLoading = false
      this.$message.success('上传成功')
    },

这里是当文件上传成功,从后端响应中获取返回的当前视频链接,这里我将链接存入到前端一个对象中,后面在进行表单提交的时候,将这个链接写入到数据库中即可!

image-20230422183150513

完成以上效果,并且上方弹出上传成功提示就完成了视频的上传!

第四步:腾讯云cos后端接口配置

这里我已经申请了腾讯COS对象存储服务,并拿到了对应的key。

@Api(tags = {"数据上传接口"})
@RestController
public class FileUploadController {

    @PostMapping("/upload")
    public Result<String> handleFileUpload(@RequestParam("file") MultipartFile file){


        String secretId = "你自己的";//用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
        String secretKey = "你自己的";//用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
        Region region = new Region("ap-beijing");
        ClientConfig clientConfig = new ClientConfig(region);
        clientConfig.setHttpProtocol(HttpProtocol.https);
        COSClient cosClient = new COSClient(cred, clientConfig);
        // 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
        String bucketName = "你自己的";
        // 对象键(Key)是对象在存储桶中的唯一标识。
        String key = file.getOriginalFilename();
        UUID uuid=UUID.randomUUID();
        String str=uuid.toString();
        key=str+key;
        String url="";
        try {
            InputStream inputStream =file.getInputStream();
            ObjectMetadata objectMetadata = new ObjectMetadata();
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, inputStream, objectMetadata);
            putObjectRequest.setStorageClass(StorageClass.Standard_IA);
            PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
            url="https://lh-13134你自己的myqcloud.com"+"/"+key;
        } catch (CosServiceException e) {
            e.printStackTrace();
        } catch (CosClientException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return Result.success(url);
    }
}

这个接口中你需要修改对应的id和key以及存储桶名称,就可以实现将视频文件上传到腾讯云中了

接下来就是提交表单数据,将表单中的内容存储到数据库就可以了!这里就不演示 了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

春秋云境:CVE-2022-25411(Maxsite CMS文件上传漏洞)

目录 一、题目 二、官方POC 一、题目 介绍&#xff1a; MaxSite CMS是俄国MaxSite CMS开源项目的一款网站内容管理系统 Maxsite CMS存在文件上传漏洞&#xff0c;攻击者可利用该漏洞通过精心制作的PHP文件执行任意代码。 进入题目&#xff1a; 发现是俄文 乌拉~~ 不过没…

MongoDB副本集

一、介绍 MongoDB副本集(Replica set)是一组MongoDB实例,它们都维护着相同的数据集合。MongoDB副本集是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。副本集没有固定的主节点,当主节点发生故障时整个集群会选举一个主节点为系统提供服务…

6.S081——Lab3——page table

0.briefly speaking 这是6.S081 Fall 2021的第三个实验&#xff0c;是页表和虚拟内存相关的实验&#xff0c;在之前我们已经详细地阅读了Xv6内核中有关虚拟内存管理的源代码&#xff0c;现在就可以深入一下这个实验了。本实验分为如下三个小任务&#xff1a; Speed up system…

【Mac-m2芯片docker安装AWVS及问题解决】

【Mac-m2芯片docker安装AWVS及问题解决】 docker安装AWVS安装报错问题解决 docker安装 docker安装命令&#xff1a; brew install --cask --appdir/Applications docker 查看是否安装成功&#xff1a; docker --version docker info 换源&#xff1a; “https://hub-mirror.c.…

在Python中使用牛顿法

牛顿法简介 牛顿法&#xff08;Newton’s method&#xff09;是一种常用的优化算法&#xff0c;在机器学习中被广泛应用于求解函数的最小值。其基本思想是利用二次泰勒展开将目标函数近似为一个二次函数&#xff0c;并用该二次函数来指导搜索方向和步长的选择。 牛顿法需要计…

从零开始学架构——FMEA故障模式与影响分析

1 FMEA介绍 FMEA&#xff08;Failure mode and effects analysis&#xff0c;故障模式与影响分析&#xff09;又称为失效模式与后果分析、失效模式与效应分析、故障模式与后果分析等&#xff0c;专栏采用“故障模式与影响分析”&#xff0c;因为这个中文翻译更加符合可用性的语…

高并发的程序设计-系统设计层面

高并发的程序设计-系统设计层面 目录概述需求&#xff1a; 设计思路实现思路分析1.主要指标二、处理高并发的方案 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better …

ChatGPT写文章效果-ChatGPT写文章原创

ChatGPT写作程序&#xff1a;让文案创作更轻松 在当前数字化的时代&#xff0c;营销推广离不开文案创作。然而&#xff0c;写作对许多人来说可能是一项耗时而枯燥的任务。如果您曾经为写出较高质量的文案而苦恼过&#xff0c;那么ChatGPT写作程序正是为您而设计的。 ChatGPT是…

gitlab安装与使用(图文详解超详细)

一 找最新的安装镜像 推荐用清华源 目前最新版本是15.95 二 在/opt 下创建gitlab文件夹 [rootlocalhost ~]# mkdir /opt/gitlab [rootlocalhost ~]# 三 在gitlab目录下写一个 shell脚本 vim int.sh给它加上执行权限 chmod ux int.sh运行这个脚本 ./ins.sh出现这个截图 安…

three.js之摄像机

本节将在上一节的基础上进一步介绍一下摄像机功能。 three.js的摄像机主要包括两类&#xff1a;正交投影摄像机和透视投影摄像机。 透视投影摄像机&#xff1a;THREE.PerspectiveCamera&#xff0c;最自然的视图&#xff0c;距离摄像机越远&#xff0c;它们就会被渲染得越小。…

【编程问题】解决 mapper.xml 文件的 resultType 爆红问题:Cannot resolve symbol ‘xxx‘

解决mapper.xml文件的resultType爆红问题&#xff1a;Cannot resolve symbol xxx 1.问题描述2.问题分析3.问题解决3.1 配置注解&#xff08;推荐&#xff09;3.2 配置全类名3.3 删除插件 4.事件感悟 系统&#xff1a;Win10 JDK&#xff1a;1.8.0_333 IDEA&#xff1a;2022.2.4 …

HCIP之MPLS中的VPN

目录 HCIP之MPLS中的VPN 定义 例图 解读 流程 双层标签技术 控制层面 数据层面 配置 HCIP之MPLS中的VPN 定义 VPN --- 虚拟网专用 --- 是一种运营商提供的&#xff0c;专门解决虚拟专线安全及宽带问题的综合解决方案 例图 解读 站点 --- 可以理…

Day936.如何重构过大类 -系统重构实战

如何重构过大类 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于如何重构过大类的内容。 在过去的代码里一定会遇到一种典型的代码坏味道&#xff0c;那就是“过大类”。 在产品迭代的过程中&#xff0c;由于缺少规范和守护&#xff0c;单个类很容易急剧膨胀&#…

婴儿尿布台出口美国CPC认证

什么是尿布台&#xff1f;尿布台上架亚马逊要怎么做&#xff1f;咱们接着往下看。 什么是尿布台&#xff1f; 尿布台&#xff1a;尿布台是一种自立式抬升结构&#xff0c;通常设计用于承托体重不超过 13.61 千克&#xff08;30 磅&#xff09;的儿童。儿童采用平躺姿势&#…

Forest-声明式HTTP客户端框架-集成到SpringBoot实现调用第三方restful api并实现接口数据转换

场景 Forest 声明式HTTP客户端API框架&#xff0c;让Java发送HTTP/HTTPS请求不再难。它比OkHttp和HttpClient更高层&#xff0c; 是封装调用第三方restful api client接口的好帮手&#xff0c;是retrofit和feign之外另一个选择。 通过在接口上声明注解的方式配置HTTP请求接…

echarts中横坐标显示为time,使用手册

需求&#xff1a; 后端传递&#xff08;两段数据&#xff0c;不同时间间隔&#xff09;的24h实时数据&#xff0c;前端需要根据24小时时间展示&#xff0c;要求&#xff1a;x轴为0-24h&#xff0c;每个两小时一个刻度 误区&#xff1a; 刚开始通过二维数据的形式秒点&#xff…

Python入门到精通12天(迭代器与生成器)

迭代器与生成器 迭代器生成器 迭代器 迭代器是可迭代的对象&#xff0c;即可以进行遍历的对象。列表、字符串、元组、字典和集合这些都是可迭代的对象&#xff0c;都可以进行遍历。 迭代器是一种访问序列元素的方式&#xff0c;它可以通过next()函数逐个返回序列中的元素。并…

mybatis3源码篇(1)——构建流程

mybatis 版本&#xff1a;v3.3.0 文章目录 构建流程SqlSessionFactoryBuilderXMLConfigBuildertypeAliasesElementtypeHandlerElementmapperElementMapperRegistry MappedStatementMapperAnnotationBuilderXMLMapperBuilderMapperBuilderAssistant SqlSessionFactorySqlSession…

【录用案例】1区SCI仅36天录用,新增多本1-2区SCI,CNKI评职好刊发表案例

我处上周&#xff08;2023年4月8日-2023年4月14日&#xff09;经核实&#xff0c;由我处Unionpub学术推荐的24篇论文已被期刊部录用、20篇见刊&#xff0c;5篇检索&#xff1a; ✔新增1区纳米与环境类SCI&EI&#xff0c;仅36天录用&#xff0c;录用后17天见刊&#xff1b;…

前端canvas截图酷游地址的方法!

前情提要 想在在JavaScript中&#xff0c;酷游专员KW9㍠ㄇEㄒ提供用HTML5的Canvas元素来剪取画面并存成SVG或PNG。 程式写法(一) 首先&#xff0c;需要在HTML中创建一个Canvas元素<canvas id"myCanvas"></canvas> 在JavaScript中&#xff0c;使用canv…