vue+iviewUi+oss直传阿里云上传文件

c、初始化OSS对象:

this.client = new OSS({region: '',//地域(在创建 Bucket 的时候指定的中心位置),这里可能不知道具体地域怎么填其实就是 oss-cn-中心位置 ,例:region:'oss-cn-chengdu',chengdu则是创建bucket是指定的位置成都。accessKeyId: '', //阿里云产品的通用idaccessKeySecret: '',//密钥bucket: '' //OSS 存储区域名
});

d、定义选取文件上传到oss的方法

uploadFile(event){let file = event.target.files[0]if(!(/^\S+\.mp4$/.test(file.name))){return this.$message.error('请上传视频文件')}/*** 文件的类型,判断是否是视频*/let param = new FormData()param.append('file', file, file.name);console.log('开始上传')this.put(file.name,file)
},

e、定义put方法上传到阿里云

async put (name,file) {try {var fileName = new Date().getTime()+name;//object-name可以自定义为文件名(例如file.txt)或目录(例如abc/test/file.txt)的形式,实现将文件上传至当前Bucket或Bucket下的指定目录。let result = await this.client.put(fileName, file);this.video_url=result.url;//返回的上传视频地址//一下为生成图片处理的签名 URL t_1000表示第一秒视频图片,常用来作为视频封面图const imgRes = this.video_url+'?x-oss-process=video/snapshot,t_1000,f_jpg,w_0,h_0,m_fast';      } catch (e) {          console.log(e);}
},

可能遇到的问题:
1、跨域不能上传成功:
跨域不能上传成功里插入图片描述
去阿里云配置域名,上传服务器验证

uni-app中使用(需要后端配合一下)

1、data定义数据

data() {return {ossData:{accessid: "",dir: "/uploads/202003/",expire: 1585653811,host: "",policy: "",signature: ""},fileInfo:null,}
},

2、定义选择要上传的视频文件方法

selVideo(type){uni.chooseVideo({count: 1,maxDuration:15,compressed:false,success: (res) => {if(parseFloat(res.duration)>=16){return this.$toast('请选取小于15s的视频!')}let tempFilePath = res.tempFilePath;this.fileInfo=res;if(!this.fileInfo){return}uni.showLoading({title:'上传中...'})this.getOssSign(res.tempFilePath)	}							});
},

3、定义获取服务器端返回oss配置方法

async getOssSign(path,type){let [e, data] = await this.$api.getOssSign();if (e) returnif (data.errNum === 200) {										this.ossData=data.result;	let fileName=new Date().getTime()+'app'+this.fileInfo.tempFilePath.substr(this.fileInfo.tempFilePath.length-6,)uni.uploadFile({url: this.ossData.host,  //后台给的阿里云存储给的上传地址filePath: path,  fileType: 'video',name: 'file',formData: {key: fileName,  //文件名policy: this.ossData.policy,  //后台获取超时时间OSSAccessKeyId: this.ossData.accessid, //后台获取临时IDsuccess_action_status: '200', //让服务端返回200,不然,默认会返回204signature: this.ossData.signature //后台获取签名},success: (res) => {console.log(res,fileName);uni.hideLoading();uni.showToast({title: '上传成功',icon: 'success',duration: 1000});this.video=this.ossData.host+'/'+fileName;		},fail: (err) => {uni.hideLoading();uni.showModal({title: '上传失败',content: err.errMsg,showCancel: false});},complete:(com) => {console.log(com)}});				}else{this.$toast(data.errMsg);}
},

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字节C++后端面试总结

字节的面经,技术栈是 C++ 后端。 计算机网络 UDP和TCP区别 先说了概念一个是面向连接的基于字节流的可靠连接,一个是不需要连接的基于数据报的不可靠传输 然后说了几个小点,比如首部长度、应用场景、服务对象什么的。 补充: 还有一个很重要的点:UDP 的实时性比 TCP 好…

Java的抽象类不能被实例化

Java的抽象类不能被实例化。如果试图实例化,会编译报错。 示例: 定义一个抽象类: package com.thb;public abstract class AbstractPoint {public AbstractPoint() {} }再定义一个主类: package com.thb;public class Test4 {p…

从源码层面深度剖析Spring循环依赖 | 京东云技术团队

以下举例皆针对单例模式讨论 图解参考 https://www.processon.com/view/link/60e3b0ae0e3e74200e2478ce 1、Spring 如何创建Bean? 对于单例Bean来说,在Spring容器整个生命周期内,有且只有一个对象。 Spring 在创建 Bean 过程中&#xff0…

中电金信:ChatGPT一夜爆火,知识图谱何以应战?

随着ChatGPT的爆火出圈 人工智能再次迎来发展小高潮 那么作为此前搜索领域的主流技术 知识图谱前路又将如何呢? 事实上,ChatGPT也并非“万能”,作为黑箱模型,ChatGPT很难验证生成的知识是否准确。并且ChatGPT是通过概率模型执行推…

全新二开美化版UI好看的社区源码下载/反编译版

2023全新二开美化版UI精美的社区源码下载/反编译版 之前我分享过Rule原版,相信大家已经有很多人搭建好了。这次我要分享的是RuleAPP的二开美化版(请尊重每个作者的版权),这个版本没有加密,可以进行反编译,…

大数据——推荐系统

1 推荐系统的发展 推荐系统是指面对没有需求的用户在进入产品时,要给用户推荐什么东西,现在的APP基本上都会采用推荐系统。 从一开始的1990s开始的门户网站,像Yahoo、搜狐和Hao123等等,都是基于分类目录的网页导航网站&#xff0…

Llama 2:开放基础和微调聊天模型

介绍 大型语言模型(llm)作为高能力的人工智能助手,在复杂的推理任务中表现出色,这些任务需要广泛领域的专家知识,包括编程和创意写作等专业领域。它们可以通过直观的聊天界面与人类进行交互,这在公众中得到了迅速而广泛的采用。 法学硕士的能力是显著的考虑到训练的表面上…

产业互联网-跨境电商B2B平台

【背景】:互联网已经进入web3.0时代,产业互联网是互联网关键时点,特别是跨境电商,速卖通,亚马逊,wish Ebay,还有出海的titok,temu等,中国企业或平台走出来也是一条光明大通&#xff…

3.4 网络安全管理设备

数据参考:CISP官方 目录 IDS (入侵检测系统)网络安全审计漏洞扫描系统VPN(虚拟专网)堡垒主机安全管理平台 一、IDS (入侵检测系统) 入侵检测系统(IDS)是一种网络安全设备,用于监测和检测网络中的入侵行…

【TypeScript】交叉类型联合类型(四)

【TypeScript】交叉类型&联合类型(四) 【TypeScript】交叉类型&联合类型(四)一、简介二、交叉类型2.1 交叉类型使用的注意点2.2 基本数据类型交叉2.3 对象类型交叉 三、联合类型四、类型缩减 一、简介 TypeScript 中的交…

坐标转换-使用geotools读取和转换地理空间表的坐标系(sqlserver、postgresql)

前言: 业务上通过GIS软件将空间数据导入到数据库时,因为不同的数据来源和软件设置,可能导入到数据库的空间表坐标系是各种各样的。 如果要把数据库空间表发布到geoserver并且统一坐标系,只是在geoserver单纯的设置坐标系只是改了…

jvm-程序计数器

1、是什么 4 学习路线 类加载器 内存结构方法区 类堆 对象虚拟机栈程序计数器本地方法栈 执行引擎解释器编译器 热点代码 5 程序计数器–作用 java源代码编译蛏二进制字节码 jvm指令。 对所有平台保持一致性。记住下一条jvm指令的执行地址。寄存器,cpu中读取速度…

从零开始学习 Java:简单易懂的入门指南之API、String类(八)

常用API 1.API1.1API概述1.2如何使用API帮助文档 2.String类2.1String类概述2.2String类的特点2.3String类的构造方法2.4创建字符串对象两种方式的区别2.5字符串的比较2.5.1号的作用2.5.2equals方法的作用 2.6用户登录案例2.6.1案例需求2.6.2代码实现 2.7遍历字符串案例2.7.1案…

elementUi select下拉框触底加载异步分页数据

在Element UI中,可以通过监听select下拉框的visible-change事件来实现触底加载下一页的效果。 方式一:利用elementUi的事件 具体步骤如下: 首先,在select组件中设置:visible-change"handleVisibleChange"…

【代码解读】RRNet: A Hybrid Detector for Object Detection in Drone-captured Images

文章目录 1. train.py2. DistributedWrapper类2.1 init函数2.2 train函数2.3 dist_training_process函数 3. RRNetOperator类3.1 init函数3.1.1 make_dataloader函数 3.2 training_process函数3.2.1 criterion函数 4. RRNet类(网络模型类)4.1 init函数4.…

【GitOps系列】如何实施自动化渐进式交付?

文章目录 前言自动渐进式交付概述自动渐进式交付准备创建生产环境创建 AnalysisTemplate访问生产环境安装Prometheus配置 Ingress-Nginx 和 ServiceMonitor验证 Ingress-Nginx 指标 自动渐进式交付实战自动渐进式交付成功自动渐进式交付失败 结语 前言 在实施金丝雀发布的过程中…

无涯教程-Perl - References(引用)

Perl引用是一个标量数据类型,该数据类型保存另一个值的位置,该值可以是标量,数组或哈希。 创建引用 变量,子程序或值创建引用很容易,方法是在其前面加上反斜杠,如下所示: $scalarref \$foo; $arrayref …

Linux下的环境变量

目录 一、环境变量是什么?二、常见的环境变量三、查看环境变量的方法四、和环境变量相关的命令五、命令行参数五、环境变量通常是具有全局属性的 一、环境变量是什么? 环境变量通俗来说就是一种存储系统和应用程序运行需要的配置信息的方式。可以把环境…

OPENCV C++(四)形态学操作+连通域统计

形态学操作 先得到一个卷积核 Mat kernel getStructuringElement(MORPH_RECT,Size(5,5)); 第一个是形状 第二个是卷积核大小 依次为腐蚀 膨胀 开运算 闭运算 Mat erodemat,dilatemat,openmat,closemat;morphologyEx(result1, erodemat, MORPH_ERODE, kernel);morphologyEx…

计算机网络(4) --- 协议定制

计算机网络(3) --- 网络套接字TCP_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/132035757?spm1001.2014.3001.5501 目录 1. 协议的基础知识 TCP协议通讯流程 ​编辑 2.协议 1.介绍 2.手写协议 1.内容 2.接口 …