Skip to content

下载Blob流文件

  1. axios封装blob类型接口
  2. 调用接口
  3. 判断返回值是异常JSON还是正常Blob流
  4. 异常处理或者执行下载操作
js
btn_xzhzsqd() {
  this.loading_download_row = true
  hzsqdxz(this.formParams)
    .then((res) => {
    //   判断res是否异常 --> 异常 --> return
      //  -->> 调用下载接口之后的动作
      let fileName = ''
      let name = '文件名称'
      fileName = name + '.pdf(文件类型后缀)'
      let blob = new Blob([res.data], {
        type: 'application/vnd.ms-excel;charset=utf-8'
      })
      let downloadElement = document.createElement('a')
      let href = window.URL.createObjectURL(blob) //创建下载的链接
      downloadElement.href = href
      downloadElement.download = fileName //下载后文件名
      document.body.appendChild(downloadElement)
      downloadElement.click() //点击下载
      document.body.removeChild(downloadElement) //下载完成移除元素
      window.URL.revokeObjectURL(href) //释放掉blob对象
    })
    .finally(() => {
      this.loading_download = false
    })
}
btn_xzhzsqd() {
  this.loading_download_row = true
  hzsqdxz(this.formParams)
    .then((res) => {
    //   判断res是否异常 --> 异常 --> return
      //  -->> 调用下载接口之后的动作
      let fileName = ''
      let name = '文件名称'
      fileName = name + '.pdf(文件类型后缀)'
      let blob = new Blob([res.data], {
        type: 'application/vnd.ms-excel;charset=utf-8'
      })
      let downloadElement = document.createElement('a')
      let href = window.URL.createObjectURL(blob) //创建下载的链接
      downloadElement.href = href
      downloadElement.download = fileName //下载后文件名
      document.body.appendChild(downloadElement)
      downloadElement.click() //点击下载
      document.body.removeChild(downloadElement) //下载完成移除元素
      window.URL.revokeObjectURL(href) //释放掉blob对象
    })
    .finally(() => {
      this.loading_download = false
    })
}