使用axios实现上传视频进度条
这是最终的效果图
先介绍一下axios的使用:中文的axios官方介绍
首先定义一个uploadTest方法,写在vue文件的methods里
该方法有三个参数,分别是参数,和两个回调函数,参数就是我们要上传图片的需要的额参数;而第一个回调函数,是获取上传进度包含的数据,第二回调是获取上传成功失败,后台返回的数据;来进行页面的下一步操作。
uploadTest(formData,callback1,callback2){
this.axios({
url:url_pref+'/file/upload',
method:'post',
headers: {
'token': this.$store.state.UserMod.token
},
onUploadProgress:function(progressEvent){ //原生获取上传进度的事件
if(progressEvent.lengthComputable){
//属性lengthComputable主要表明总共需要完成的工作量和已经完成的工作是否可以被测量
//如果lengthComputable为false,就获取不到progressEvent.total和progressEvent.loaded
callback1(progressEvent);
}
},
data:formData
}).then(res =>{
callback2(res);
}).catch(function (error) {
console.log(error)
this.$notify.error({
title: '错误',
message: '上传文件失败!'
})
})
},
然后在页面<el-upload></el-upload>中使用el-process组件
<div v-else-if="this.isPreview==false" style="width: 261px;position: relative;top: 208px;left: 145px;" class="add-micro-process">
<el-progress :percentage=this.percentage stroke-width="10" :show-text=false color="#FF9012" ></el-progress><br/>
<span style="color:#969C99;">{{this.uploadText}}<br>{{this.percentage}}%</span>
</div>
最后当提交表单时会调用上面的方法
uploadFile(file,me){
let formData = new FormData();
formData.append('uploadFile', file.file);
formData.append('key', me.uploadInfo['dir'] + me.random_string(10) + me.suffix)
formData.append('policy',me.uploadInfo['policy'])
formData.append('OSSAccessKeyId',me.uploadInfo['accessid'])
formData.append('success_action_status',200)
formData.append('callback',me.uploadInfo['callback'])
formData.append('signature',me.uploadInfo['signature'])
me.uploadTest(formData,(res) =>{
let loaded = res.loaded, total = res.total;
this.$nextTick(() =>{
this.percentage = Math.ceil((loaded/total) * 100);
}
)
}, (res) =>{
if(res.status === 200){
me.downloadUrl = res.data['downloadUrl']//fileDownloadUri
this.isPreview=true
me.$notify({
title: '成功',
message: `上传文件成功!`,
type: 'success'
})
}
}
)},
完成!
使用axios实现上传视频进度条的更多相关文章
- asp.net大文件上传与上传文件进度条问题
利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层 关于Plupload结合上传插件jquery.plupload.queue的使用 这是群里面一位朋友给的资料. 下面是自己搜索到的一 ...
- atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7
atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7 1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传 ...
- node实现http上传文件进度条 -我们到底能走多远系列(37)
我们到底能走多远系列(37) 扯淡: 又到了一年一度的跳槽季,相信你一定准备好了,每每跳槽,总有好多的路让你选,我们的未来也正是这一个个选择机会组合起来的结果,所以尽可能的找出自己想要的是什么再做决定 ...
- Ajax上传文件进度条显示
要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 html5提供了一个上传过程事件,在上传过程中不断触发,然后用已上传的大 小/总大小,计算上传的百分比,然后用这个百分比控制div框的显 ...
- Jquery.Uploadify实现批量上传显示进度条 取消 上传后缩略图显示 可删除
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpLoad.aspx.cs&q ...
- atitit. 文件上传带进度条 atiUP 设计 java c# php
atitit. 文件上传带进度条 atiUP 设计 java c# php 1. 设计要求 1 2. 原理and 架构 1 3. ui 2 4. spring mvc 2 5. springMVC.x ...
- HTML+JS实现视频上传显示进度条
示例代码: css部分: #content{border: 1px solid saddlebrown;padding: 16px;border-radius: 2px} .list {top: 15 ...
- php上传文件进度条
ps:本文转自脚本之家 Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP 5.4以前 ...
- jQuery.uploadify-----文件上传带进度条,支持多文件上传的插件
借鉴别人总结的uploadify:基于jquery的文件上传插件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,控制文件上传大小,删除已上传文件. uploadify有两个版本,一个用f ...
随机推荐
- Linux服务器---邮件服务openwebmail安装
安装openwebmail openwebmail提供了可视化的邮件管理系统,它运行在Apache环境下. 1.安装必备软件 [root@localhost ~]# yum install –y p ...
- 查询和修改mysql最大连接数的方法
查询和修改mysql最大连接数的方法切换到mysql库里查询show variables like 'max_connections';show global status like 'Max_use ...
- UART接口与COM口的区别
原文地址:https://blog.csdn.net/wordwarwordwar/article/details/78883732 简单的讲:(UART与COM) 嵌入式里面说的串口,一般是指UAR ...
- 典型 python 小练习
#格式化输出 3方式a=input('user:').strip()print('%s'%a) #%s 占位符a1=[1,2,3]print(f'333{a1}早') #法二print('ss{0}k ...
- 导弹拦截 p1020
第一问就是求最长不上升子序列的长度,要写O(nlogn)的算法.... 对于这种nlogn的算法,只能求出长度,不能求出具体的序列.这种算法实现过程如下: 我们定义len为到目前为止最长不上升子序列的 ...
- Kattis之旅——Chinese Remainder
Input The first line of input consists of an integers T where 1≤T≤1000, the number of test cases. Th ...
- mysql union 和 left join 结合查询用法
union 和 left join 结合查询用法 SELECT u.nickname,z.group_comming_type,z.id,z.user_id,z.title,z.create_time ...
- mysql "The user specified as a definer ('root'@'%') does not exist" 问题
在重配mysql的时候碰到, 解决办法: 重新授权 grant all privileges on *.* to root@"%" identified by ".&qu ...
- debug代码时遇到循环时提高效率方法
在循环时,需要查看uid=uid=12007255时的代码执行情况 可以在循环代码中加入 if((Long)map.get("uid") == 12007255){ System. ...
- 为什么预处理和参数化查询可以防止sql注入呢?
在传统的写法中,sql查询语句在程序中拼接,防注入(加斜杠)是在php中处理的,然后就发语句发送到mysql中,mysql其实没有太好的办法对传进来的语句判断哪些是正常的,哪些是恶意的,所以直接查询的 ...