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

这篇具有很好参考价值的文章主要介绍了vue+iviewUi+oss直传阿里云上传文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端实现文件上传到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中定义数据文章来源地址https://www.toymoban.com/news/detail-637975.html

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、跨域不能上传成功:
vue+iviewUi+oss直传阿里云上传文件,vue.js,uni-app,阿里云
去阿里云配置域名,上传服务器验证
vue+iviewUi+oss直传阿里云上传文件,vue.js,uni-app,阿里云

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)	
		}							
	});
},

   
   
vue+iviewUi+oss直传阿里云上传文件,vue.js,uni-app,阿里云

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);
	}
},

    
    
vue+iviewUi+oss直传阿里云上传文件,vue.js,uni-app,阿里云

前端实现文件上传到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,
      }
}

到了这里,关于vue+iviewUi+oss直传阿里云上传文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • node.js - 上传文件至阿里云oss

    deploy.js

    2024年02月08日
    浏览(42)
  • SpringBoot+Vue实现阿里云OSS服务器签名直传并且返回回调数据

    vue java 可参考官方文档:如何通过Java在服务端签名直传并设置上传回调_对象存储-阿里云帮助中心  

    2024年02月13日
    浏览(34)
  • node.js 前端直接分片上传文件与阿里云OSS的方法

    解决问题:直接由用户上传文件至阿里云OSS,而非经过中间件/后端 官方文档:分片上传 (aliyun.com)​​​​​​​​​​​ 在官方文档中,提供的方法是由中间件上传至oss,调用了path库,但是在浏览器用户没有那么大的权限,我们关注到文档中此表: 类型 参数 说明 必选参

    2024年02月11日
    浏览(53)
  • vue项目中上传文件到阿里云oss方法

    在项目需求中,关于图片、视频、文件等上传文件,一般不是直接放置在自己的后台服务器上,一般都会购买云服务进行存储。譬如阿里云的oss对象存储。 那么,前端开发项目中,涉及到上传的功能时,我们不是把文件上传到自己的后台服务器,而是阿里云上面去,然后拿到

    2024年02月06日
    浏览(57)
  • 阿里云OSS-小程序文件直传(支持微信小程序、H5、PC端web使用)

    支持微信小程序、H5、PC端web使用,整套文件进行封装统一使用 开发背景:做类似发布朋友圈的功能需求,由于后端对发布功能只提供一个接口,文字、状态、文件上传统一一个接口上传,且对文件上传方面做的接口存在诸多问题(人已经整麻了),包括各种数据结构的转换

    2024年02月07日
    浏览(39)
  • 已解决:前端直传阿里oss报错跨域问题,“No ‘Access-Control-Allow-Origin‘”,这个错误基本就是在阿里的开放平台没做规则配置(附我封装的上传源码)

    就直接上阿里oss管理后台去增加一个跨域规则:见图片,特详细  配置成这样点确定就好了,就这么简单 标题其实就已经是答案了,但是以我的性格,我还是要介绍介绍案发背景,如果你比较着急,可以直接跳到解决方案那里看: 本来我就是个干前端的,也干安卓端(为啥

    2024年02月11日
    浏览(34)
  • 前端vue uni-app多图片上传组件,支持单个文件,多个文件上传 步骤条step使用

    快速实现多图片上传组件,支持单个文件,多个文件上传 步骤条step使用; 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下: 使用方法   使用方法 HTML代码部分   html JS代码 (引入组件 填充数据)   javascript

    2024年02月08日
    浏览(85)
  • 如何使用阿里云OSS进行前端直传

    在使用阿里云OSS进行前端直传时,首先我们需要去阿里云官网注册自己的存储桶,然后申请相关的accessKeyId和accessKeySecret,然后新建一个桶,为这个桶命名以及选择对应的地区。 然后可以根据自己的业务,封装对应的组件,以下是根据我自己的项目,所封装的上传组件,所用

    2024年02月21日
    浏览(41)
  • 前端阿里云OSS直传,微信小程序版本

    网络上许多的文章资料,全是使用阿里云官方的SDK,ali-oss插件去做直传。可是各位素未谋面的朋友要注意,这个 SDK它支持web环境 使用,也就是 PC端浏览器 。 当 项目环境 切换到 微信小程序 ,是无法使用这种方式的,当然官方也有给出微信小程序直传的文档,继续往下看。

    2024年02月07日
    浏览(45)
  • 阿里云 OSS 客户端直传 Policy 模式使用

    Post policy 是阿里推出的一种安全的文件上传方式,在传统的方式一般都是客户端将文件上传至服务端,再由服务端将文件上传至具体的文件系统比如阿里云的OSS,这种方式不仅增加了我们服务器的带宽,而且效率也不怎么高,为此阿里提出的policy 模式,是由服务端进行签名,

    2023年04月08日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包