前端将blob转换为可下载的url及下载

一.转换

javascript 复制代码
//将blob转换为url
const changeBlobToUrl = blobData => {
	return new Promise(resolve => {
		//创建Blob对象
		const blob = new Blob([blobData])

		// 创建FileReader对象
		const reader = new FileReader()

		reader.onload = function (e) {
			resolve(e.target.result)
		}

		// 使用FileReader读取Blob数据
		reader.readAsDataURL(blob)
	})
}

二.下载

javascript 复制代码
//前端下载blob的url类型文件
const downloadFileByBlobUrl = (url: string, name: string) => {
	aDownload(url, name)
	URL.revokeObjectURL(url)
}


const aDownload = (url, name) => {
	// 创建<a>元素
	const link = document.createElement("a")
	// 设置<a>元素的属性
	link.href = url
	link.download = name
	// 将<a>元素添加到文档中
	document.body.appendChild(link)
	// 触发点击事件
	link.click()
	// 移除<a>元素
	document.body.removeChild(link)
}
相关推荐
IT_陈寒3 分钟前
SpringBoot开发实战:从入门到精通
前端·人工智能·后端
乘风gg3 分钟前
一个人一个月合并 2500 PRs 的秘密是什么?
前端·ai编程·claude
kiros_wang5 分钟前
网络状态监听&WiFi信息获取:弱网提示、断网兜底方案
开发语言·网络·php
geovindu6 分钟前
rust: pool Pattern (续)
开发语言·后端·设计模式·rust·对象池简写模式
一条泥憨鱼8 分钟前
拦截器与过滤器:一次请求穿过 Spring 时,会先经过谁呢
java·开发语言·后端·spring
晴天的雨.9928 分钟前
【C++】 priority_queue知识点总结
开发语言·数据结构·c++
郑州光合科技余经理13 分钟前
本地生活服务系统:预约状态和进度通知接口怎么拆
java·开发语言·前端·javascript·后端·php·生活
AIFQuant18 分钟前
Python港股实时行情API接入:恒生股票数据获取与AH股溢价监控实战
开发语言·数据库·python·金融·实时数据api
外收内放28 分钟前
Python基础语法练习题(70)
开发语言·python
Peter-Code37 分钟前
Nginx 常用操作整理(前端)
服务器·前端·nginx