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

news2024/12/22 22:35:03

前端实现文件上传到oss(阿里云)适用于vue、react、uni-app,获取视频第一帧图片

用户获取oss配置信息将文件上传到阿里云,保证了安全性和减轻服务器负担。一般文件资源很多直接上传到服务器会加重服务器负担此时可以选择上传到oss,轻量型的应用可以直接将文件资源上传到服务器就行。废话不多说,下面开始总结本人上传到oss的踩坑之旅。

vue中使用

1、第一步,要注册阿里云账号,阿里云官网

2、安装oss模块:npm i ali-oss -D

3、在vue具体使用如下
a、引入模块:import OSS from ‘ali-oss’
b、data中定义数据

data(){
      return{
      	video_url:'',
      	client:null,
      }
}

c、初始化OSS对象:

this.client = new OSS({
        region: '',//地域(在创建 Bucket 的时候指定的中心位置),这里可能不知道具体地域怎么填其实就是 oss-cn-中心位置 ,例:region:'oss-cn-chengdu',chengdu则是创建bucket是指定的位置成都。
        accessKeyId: '', //阿里云产品的通用id
        accessKeySecret: '',//密钥
        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) return
	if (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, //后台获取临时ID
				success_action_status: '200', //让服务端返回200,不然,默认会返回204
				signature: 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.coloradmin.cn/o/847323.html

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

相关文章

怎么修改ip地址 手机ip地址如何改

如今的数字化时代,IP地址是连接我们与互联网世界的桥梁。然而,有时我们可能需要修改IP地址以满足特定需求,比如提高网络速度、绕过地理限制等。本文将为您提供修改IP地址的简单步骤和常见问题解答,帮助您轻松完成IP地址修改。 一、…

SciencePub学术 | Elsevier旗下计算机类重点SCIE征稿中

SciencePub学术 刊源推荐: Elsevier旗下计算机类重点SCIE征稿中!信息如下,录满为止: 一、期刊概况: 计算机语音类重点SCIE 【期刊简介】IF:4.0-4.5,JCR2区,中科院3区; 【出版社…

NANK南卡签约傅园慧,倡导更健康的听音体验

近日,中国知名骨传导耳机品牌——NANK南卡,正式官宣著名游泳冠军傅园慧成为Nank南卡的品牌推荐大使。 傅园慧是一位备受瞩目的运动员,在游泳领域取得了令人瞩目的成就,不仅如此她独特的个性和乐观向上的态度而闻名,深受…

2023全新UI好看的社区源码下载/反编译版

2023全新UI好看的社区源码下载/反编译版 这次分享一个RuleAPP二开美化版(尊重每个作者版权),无加密可反编译版本放压缩包了,自己弄吧!!! RuleAPP本身就是一款免费开源强大的社区,基…

一文5000字从0到1构建高效的接口自动化测试框架思路

在选择接口测试自动化框架时,需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说,使用Python相关的测试框架更为便捷。无论选择哪种框架,重要的是确保 框架功能完备,易于维护和扩展,提高测试效率和准确性。…

现代C++中的从头开始深度学习【1/8】:基础知识

一、说明 提及机器学习框架与研究和工业的相关性。现在很少有项目不使用Google TensorFlow或Meta PyTorch,在于它们的可扩展性和灵活性。也就是说,花时间从头开始编码机器学习算法似乎违反直觉,即没有任何基本框架。然而,事实并非…

同芯同意创未来——赛意力量 SNP ·南京半导体高科专场

7月28日,“赛意力量全国行”将在南京组织以“同芯同意创未来”为主题的南京半导体高科专场沙龙活动。届时,“赛意力量”将携众优秀企业IT及财务领域嘉宾,开展深度交流,共同为推动科技创新与区域经济发展而出谋划策。 南京作为中国…

并发——线程与进程的关系,区别及优缺点?

文章目录 1. 图解进程和线程的关系2.程序计数器为什么是私有的?3. 虚拟机栈和本地方法栈为什么是私有的?4. 一句话简单了解堆和方法区5. 说说并发与并行的区别? 从 JVM 角度说进程和线程之间的关系 1. 图解进程和线程的关系 下图是 Java 内存区域,通过下图我们…

【echarts】手把手喂饭教学!最容易懂的微信小程序 echarts 项目实践入门教程

前言:echarts是一个使用 canvas 制作图表的组件库,是前端中最常见的数据可视化( DashBoard ) 工具之一。相信很多同学都已经接触过了,但一直局限于使用官网的模板,无法完成个性化的精美图表。如果你也正被 无法使用echarts完成个性…

word单独一页设置页面设置

点击“分隔符——下一页”,这一页就成为了独立的一节,就可以单独设置页面布局了

掌握Python列表的魔法:解密常用方法揭示的编程奥秘!

在Python的编程世界中,列表是你的魔法仓库,能够存储、组织和操控各种数据。这些数据可以是数字、字符串、对象,甚至是其他列表。无论你是新手还是经验丰富的开发者,本篇博客将带你深入探索Python列表的常用方法,揭示这…

python简单知识点大全

python简单知识点大全 一、变量二、字符串三、比较运算符四、随机数4.1、随机整数4.2、随机浮点数4.3、随机数重现 五、数字类型5.1、整数5.2、浮点数5.3、复数 六、数字运算七、内置函数八、布尔类型八、逻辑运算符九、短路逻辑和运算符优先级十、分支和循环10.1、if语句10.2、…

Java技术整理(3)—— 多线程并发篇

1、Java 线程实现/创建方式 (1)继承Thread类 Thread类本质上是实现了Runnable接口的实例,代表一个线程的实例,通过start()启动,自动执行run()方法。 (2)实现Runnable接口 Runnable是一个没有…

【我们一起60天准备考研算法面试(大全)-第三十七天 37/60】【思维题】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

论文阅读---《Unsupervised Transformer-Based Anomaly Detection in ECG Signals》

题目:基于Transformer的无监督心电图(ECG)信号异常检测 摘要 异常检测是数据处理中的一个基本问题,它涉及到医疗感知数据中的不同问题。技术的进步使得收集大规模和高度变异的时间序列数据变得更加容易,然而&#xff…

实时通信应用的开发:Vue.js、Spring Boot 和 WebSocket 整合实践

目录 1. 什么是webSocket 2. webSocket可以用来做什么? 3. webSocket协议 4. 服务器端 5. 客户端 6. 测试通讯 1. 什么是webSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务…

如何在洛谷自己出的题中出数据

首先,假如你要加1个数据: 打开Dev-c(其他也行) 填入输入数据: (这个数据只是我编的) 将这个东东保存为in文件(第一个数据就名为001,第二个002)&#xff1a…

Centos 从0搭建grafana和Prometheus 服务以及问题解决

下载 虚拟机下载 https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/17_0 cenos 镜像下载 https://www.centos.org/download/ grafana 服务下载 https://grafana.com/grafana/download/7.4.0?platformlinux …

北美跨境购物商城多语言多货币系统快捷搭建(java开源)

我了解到您想搭建一个北美跨境购物商城,拥有多语言和多货币系统,并且希望使用Java开源技术进行快速搭建。以下是一个基本的搭建步骤: 1.确定需求:首先确定您的商城需求,包括功能、设计和用户体验等方面。确保您清楚地…

扫描文件怎么扫描成pdf格式?两招教你全搞定

纸质版文件在办公中有时不便携带和保存,最佳解决方法当然是将其拍照扫描并保存为PDF格式。PDF文件在日常生活中非常实用,许多文件都需要转换为PDF格式才能使用。今天将分享给大家如何将扫描文件输出为PDF格式,耐心阅读这篇文章,相…