Vue.cli3使用axios向后台请求文件并下载到本地

在这里插入图片描述

一.需求

最近公司需要一个身份证读卡功能的需求,不过用这个需求必须在本地电脑下载一个压缩包去安装这个软件

1.正常来说我们就直接请求后台写的接口

// 点击查看文档
    async handleText() {
      let res = await this.$http.get('/qh/download.do')
      console.log(res)
    },

这样写的话。会过来一些乱码样子的东西
在这里插入图片描述
这并不是我们想要的东西,也不能自动下载什么东西

2.然后我们现在给axios添加一个{responseType: ‘blob’, // 设置响应数据类型}

// 点击查看文档
    async handleText() {
      let res = await this.$http.get('/qh/download.do', {
        responseType: 'blob', // 设置响应数据类型
      })
      console.log(res)
    },

这样写我们会得到下面的值
在这里插入图片描述
做到这里我已经完成了一大半了,这就是我们想要的值

3.我们得到这些值,进行下一步操作

// 点击查看文档
    async handleText() {
      let res = await this.$http.get('/qh/download.do', {
        responseType: 'blob', // 设置响应数据类型
      })
      console.log(res)
      const data = res.data
      let url = window.URL.createObjectURL(data) // 将二进制文件转化为可访问的url
      var a = document.createElement('a')
      document.body.appendChild(a)
      a.href = url
      a.download = 'cvr-100uc-driver.zip'//这里后台写什么后缀名格式,你就写什么
      a.click() // 模拟点击下载
      window.URL.revokeObjectURL(url)
    },

做到这里就OK了,有不知道的代码就直接复制过去就行
在这里插入图片描述
本文章对你有帮助记得点赞!祝各位老板,前程似锦,万事如意,财源滚滚

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值