前端通过url实现文件下载

get请求方式
  • 和后端确定接口,在请求拦截里设置请求头
  • 前端创建超链接,通过a标签的链接向后端服务发get请求,接收后端的文件流,
// 界面代码
// vue 里面
 <a @click="downFile()">{{文件名}}</a>
 // 文件下载
 downFile () {
   let a = document.createElement('a')
   a.href = `使用后端的请求url` // 这里的请求方式为get,如果需要认证,接口上需要带上token
   a.click()
 },

// ************************************
// react的附件下载导出也可以使用上面方式完成,但是在ie的低版本浏览器可能支持不太友好
// 使用file-saver插件帮助实现

 import FileSaver from 'file-saver'

// 请求接口成功后
 let f = new Blob(['请求接口得到的数据'])
 FileSaver.saveAs(f, '文件名')


// ************************************
// 关于JSON类型文件下载会直接打开问题
// 在JQ中使用

 $.getJSON("文件的的接口请求地址地址或者本地的文件路径", function (data){
	let jsonData = JSON.stringify(data)
	let eleLink = document.createElement('a');
	eleLink.download = '模板.json';
	eleLink.style.display = 'none';
	// 字符内容转变成blob地址
	let blob = new Blob([jsonData]);
	eleLink.href = URL.createObjectURL(blob);
	// 触发点击
	document.body.appendChild(eleLink);
	eleLink.click();
})

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值