前端将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)
}
相关推荐
兆子龙9 分钟前
你不会使用 CSS 函数 clamp()?那你太 low 了😀
前端·javascript
兆子龙9 分钟前
前端性能优化终极清单:从 3 秒到 0.5 秒的实战经验
前端·javascript
兆子龙11 分钟前
babel-loader:让你的 JS 代码兼容所有浏览器
前端
百万蹄蹄向前冲12 分钟前
支付宝 VS 微信 小程序差异
前端·后端·微信小程序
兆子龙16 分钟前
JavaScript 的 Symbol.iterator:手写一个可迭代对象
前端
NGC_661116 分钟前
ArrayList扩容机制
java·前端·算法
独泪了无痕6 小时前
使用Fetch API 探索前后端数据交互
前端·http·交互设计
css趣多多6 小时前
别名路径的知识点
前端
一方热衷.6 小时前
YOLO26-Seg ONNXruntime C++/python推理
开发语言·c++·python