前端界面下载文件说明

1.当a标签herf属性的路径为同源路径时,则可以模拟点击事件实现文件下载,不为同源路径则在浏览器窗口跳转到新的页面(同源表示 域名,端口,协议相同)

function download(){
 const a = document.createElement("a")
    a.href = getServerUrl() + path
    a.download = "true"
    document.body.append(a)
    a.click()
    document.body.removeChild(a)
}

2.当下载的路径不为同源路径时,可以先将文件数据请求到, 以文件流方式数据保存,通过URL.createObjectURL(blob)作为a标签的路径 传入然后模拟下载

function getData(){
	axios.post('/server/getData/url').then(res=>{
	downloadByBlob(res.data,'text/csv')
})
}

// type类型参考这里 https://www.iana.org/assignments/media-types/media-types.xhtml
function downloadByBlob(data,type){
 const a = document.createElement("a")
 const blob = new Blob([data],{type:type})
 a.href =  URL.createObjectURL(blob)
 // 获取文件名称 参考//https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/a#download
 //a.download = "filename"
 document.body.append(a)
 a.click()
 document.body.removeChild(a)
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值