实现文件下载

1.ajax请求将文件流下载下来
2.将下载的文件流转化为blob数据
3.通过 window.URL.createObjectURL(blob)将blob转化为url
4.通过动态生成a标签 模拟点击事件下载
this.$http({   //  通过获取后端数据
   url: this.$http.adornUrl(`/strUrl/${id}`),
   method: 'get',
   responseType: 'blob',   //  blob数据类型
   timeout: 1000 * 600     //  响应时间
 }).then(res => {
   console.log('res', res)
   if (res.status === 200) {
     const blob = new Blob([res.data], { type: `application/octet-stream` })  //  创建 blob数据
     const downloadElement = document.createElement('a')  //  创建一个a标签
     const href = window.URL.createObjectURL(blob)    // 将blob转成  url地址
     downloadElement.href = href                      //  将创建的a标签的href赋值url
     downloadElement.download = `${filename}`         //  导出的名字
     downloadElement.click()                          //  默认点击触发 a标签
   } else {
     this.$message.error('下载出错!')
   }
 })

iframe下载

<el-button  size="mini" @click="handleExport(scope.row)">导出</el-button>
//method方法:
handleExport(row) {
  var elemIF = document.createElement('iframe')
  elemIF.src = 'user/downloadExcel?snapshotTime=' + formatDate(new Date(row.snapshotTime), 'yyyy-MM-dd hh:mm') +
                '&category=' + row.category 
  elemIF.style.display = 'none'
  document.body.appendChild(elemIF)
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值