前端下载文件(blob流文件下载及修改下载文件名称)

本文介绍了一种前端处理blob流文件并实现文件下载的方法。通过XMLHttpRequest请求获取blob数据,利用URL.createObjectURL将其转换为文件地址,并通过创建a标签完成下载。

项目中经常遇到文件下载需求,有时候后台返回的是一个blob流文件(就是看起来像是乱码的数据),这时就需要前端对文件进行处理,或展示,或下载。故这里简单实现一下blob流文件下载的方法。

function downloadFile() {
	// fileUrl使用后台提供的接口地址即可,这里测试使用本地图片,防止跨域
	let fileUrl = "./test.jpg";
	let xhr = new XMLHttpRequest();
	xhr.open("GET",fileUrl,true);
	xhr.responseType = "blob";
	xhr.send();
	xhr.onload = function () {
		// 获取后台返回的blob流
		let fileBlob = xhr.response;
		// 将blob流 转为 文件地址
		let createFileUrl = window.URL.createObjectURL(fileBlob);
		// 通过创建a标签下载文件
		let aTag = document.createElement("a");
		aTag.setAttribute("href",createFileUrl);
		// 文件名可以自定义后缀(是否带文件类型,例如:xxx.txt 或者 xxx)
		aTag.setAttribute("download","文件名");
		aTag.click();
		// 释放创建的文件地址对象
		window.URL.revokeObjectURL(createFileUrl);
	}
}
downloadFile()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值