axios上传文件获取上传进度

11 篇文章 0 订阅
2 篇文章 0 订阅

最近在做上传视频,因为视频比较大,耗时较长,要是没有个进度的话,用户漫长等待,体验不好,所以就想实时显示上传进度。

要点是发送请求是配置onUploadProgress

 onUploadProgress: progressEvent => {
     let persent = (progressEvent.loaded / progressEvent.total * 100 | 0)
      console.log(persent)
    },

完整上传代码如下:

//上传视频
async uploadVideo () {
  const {uploadFile} = this
  if(uploadFile){
    let param = new FormData() //创建form对象,私有,无法直接获取,只能通过get来查看其中的元素
    param.append('file',uploadFile)
    let config = {
      headers:{
        'Content-Type':'multipart/form-data',
      },
      transformRequest: [function (data) {
        return data
      }],
      onUploadProgress: progressEvent => {
        let persent = (progressEvent.loaded / progressEvent.total * 100 | 0)		//上传进度百分比
        console.log(persent)
      },
    }
    axios.post('http://xxxxxxxx/video/upload',param,config)	//地址写你们自己的接口
      .then(response=>{
        var result = response.data
        if(result.status == 0){
          console.log(result)
        }else{
          this.$message({
            message: '上传失败',
            type: 'error',
            duration:'1000'
          });
        }
      }).catch(err => {
        console.log(err)
      })
    }
},

效果:

打印输出百分比:
在这里插入图片描述
配合element-ui的进度条:
在这里插入图片描述

希望能够帮到你们一点哈。

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值