这是最终的效果图

先介绍一下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实现上传视频进度条的更多相关文章

  1. asp.net大文件上传与上传文件进度条问题

    利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层 关于Plupload结合上传插件jquery.plupload.queue的使用 这是群里面一位朋友给的资料. 下面是自己搜索到的一 ...

  2. atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7

    atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7 1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传 ...

  3. node实现http上传文件进度条 -我们到底能走多远系列(37)

    我们到底能走多远系列(37) 扯淡: 又到了一年一度的跳槽季,相信你一定准备好了,每每跳槽,总有好多的路让你选,我们的未来也正是这一个个选择机会组合起来的结果,所以尽可能的找出自己想要的是什么再做决定 ...

  4. Ajax上传文件进度条显示

    要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 html5提供了一个上传过程事件,在上传过程中不断触发,然后用已上传的大 小/总大小,计算上传的百分比,然后用这个百分比控制div框的显 ...

  5. Jquery.Uploadify实现批量上传显示进度条 取消 上传后缩略图显示 可删除

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpLoad.aspx.cs&q ...

  6. 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 ...

  7. HTML+JS实现视频上传显示进度条

    示例代码: css部分: #content{border: 1px solid saddlebrown;padding: 16px;border-radius: 2px} .list {top: 15 ...

  8. php上传文件进度条

    ps:本文转自脚本之家 Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP 5.4以前 ...

  9. jQuery.uploadify-----文件上传带进度条,支持多文件上传的插件

    借鉴别人总结的uploadify:基于jquery的文件上传插件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,控制文件上传大小,删除已上传文件. uploadify有两个版本,一个用f ...

随机推荐

  1. Ajax 知识

    Ajax 为什么要有ajax技术?    传统的web应用,一个简单的操作就要加载整个页面.浪费资源. Ajax  即“Asynchronous Javascript And XML”(异步JavaS ...

  2. ubunta apt install error

    ubuntu系统: 用apt-get命令安装一些软件包时,总报错:E:could not get lock /var/lib/dpkg/lock -open等 出现这个问题的原因可能是有另外一个程序正 ...

  3. java中BufferedImage类的用法

    1. BufferedImage是Image的一个子类,Image和BufferedImage的主要作用就是将一副图片加载到内存中. BufferedImage生成的图片在内存里有一个图像缓冲区,利用 ...

  4. 安装ubuntu18.04.1

    下载ubuntu:https://www.ubuntu.com/download/desktop 在虚拟机创建好ubuntu18.04.1后无法启动(选择的是linux,ubuntu64位),提示:此 ...

  5. com.sun.jersey.api.client.UniformInterfaceException:returned a response status of 403

    这是在同一台电脑上,然后启动两台tomcat进行文件传输时候,会出现的一个异常. 403,是因为tomcat默认禁止上传,在tomcat中的config中的web.xml中进行以下的配置就可以进行文件 ...

  6. shell 脚本的时间差计算

    在某个时间点上增加一段时间 将时间转为时间戳,然后增加时间 [root@~]# date +%s -d '2017-05-27 12:0:0' 1495857600 [root@ ~]# new_ti ...

  7. curl 异步捉取数据类

    <?php class RequestLib { /** * GET 请求 * @param string $url */ public static function http_get($ur ...

  8. Centos环境自写脚本查看使用php或nginx占用内存

    在CentOs6.4下,用root权限测试. # cd ~ //进入home目录 # vim .bashrc //编辑文件,把下面代码放入地址 mem () { top -n1 -b | head - ...

  9. 哪些个在 Sublime Text 下,"任性的" 好插件!

    我在sublime里面安装了以下有利于项目开发高效的插件: 1:SVN             源代码版本控制 2:LiveReload   浏览器实时刷新 3:jsMinifier     压缩 j ...

  10. oracle 11g亿级复杂SQL优化一例(数量级性能提升)

    自从16年之后,因为工作原因,项目中就没有再使用oracle了,最近最近支持一个项目,又要开始负责这块事情了.最近在跑性能测试,配置全部调好之后,不少sql还存在性能低下的问题,主要涉及执行计划的不合 ...