Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。

//文件下载

downFile() {

if (‘download’ in document.createElement(‘a’)) {

// 非IE下载

const elink = document.createElement(‘a’)

elink.href = imgView + ‘group1/M00/00/88/FGQfoGIOD3mAW4ezAABGAM4MtrA503.xls’ //file.url

elink.download = ‘xyqzmb.xls’ //file.name

elink.style.display = ‘none’

//link.target=“_blank”;

elink.click()

}

由于a.download跨域会失效,上面代码只可同域实现

二、通过blob实现跨域下载并修改文件名(同样适用于URL地址)

在这里插入图片描述

方法

//通过文件下载url拿到对应的blob对象

getBlob(url) {

return new Promise(resolve => {

const xhr = new XMLHttpRequest()

xhr.open(‘GET’, url, true)

xhr.responseType = ‘blob’

xhr.onload = () => {

if (xhr.status === 200) {

resolve(xhr.response)

}

}

xhr.send()

})

},

//下载文件   js模拟点击a标签进行下载

saveAs(blob, filename) {

var link = document.createElement(‘a’)

link.href = window.URL.createObjectURL(blob)

link.download = filename

link.click()

},

事件调用

<a-button type=“primary” icon=“download” @click=“downFile”>下载

//文件下载

downFile() {

let fileUrl = imgView + ‘group1/M00/00/88/FGQfoGIPDfuAErRaAABGAH4FyJ4422.xls’ //服务器文件地址

this.getBlob(fileUrl).then(blob => {

this.saveAs(blob, ‘信用权证使用导入模板件名.xlsx’)

})

},

在这里插入图片描述

以上是直接拿文件url地址下载。

请求接口下载文件方法: 以下方法仅供参考,项目不同,调用方法不同

vue组件

import { exportxlsx } from ‘@/api/api’

//导出

exportData() {

let req = {

createStartDate: this.startDate,

createEndDate: this.endDate,

status: this.status,

}

exportxlsx(‘/sys/mjBaseCount/exportMjGuaCountData’, req).then(res => {

console.log(res);

this.loading = false

const content = res

const blob = new Blob([content])

const fileName = ‘担保方式统计.xlsx’

if (‘download’ in document.createElement(‘a’)) {

// 非IE下载

const elink = document.createElement(‘a’)

elink.download = fileName

elink.style.display = ‘none’

elink.href = URL.createObjectURL(blob)

document.body.appendChild(elink)

elink.click()

URL.revokeObjectURL(elink.href) // 释放URL 对象

document.body.removeChild(elink)

} else {

// IE10+下载

navigator.msSaveBlob(blob, fileName)

}

})

}

api.js文件

import { exportFunc } from ‘@/api/manage’

//导出

const exportxlsx = (url, params) => {

params.brNo = “000000”

let req = {

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值