前端将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)
}
相关推荐
D***t1314 分钟前
前端微服务案例
前端
哀木16 分钟前
诶,这么好用的 mock 你怎么不早说
前端
Lear31 分钟前
UniApp PDF文件下载与预览功能完整实现指南
前端
Heo34 分钟前
关于XSS和CSRF,面试官更喜欢这样的回答!
前端·javascript·面试
Q***l68744 分钟前
C++在计算机图形学中的渲染
开发语言·c++
0和1的舞者1 小时前
《网络编程核心概念与 UDP Socket 组件深度解析》
java·开发语言·网络·计算机网络·udp·socket
惜棠1 小时前
visual code + rust入门指南
开发语言·后端·rust
n***i951 小时前
Rust在嵌入式系统中的内存管理
开发语言·后端·rust
q***06291 小时前
ThinkPHP和PHP的区别
开发语言·php
7***A4431 小时前
Vue自然语言处理应用
前端·vue.js·自然语言处理