当前位置:首页 > H5 > 正文内容

js将Blob 或 File 对象通过浏览器进行下载

高老师3年前 (2024-01-10)H5569

之前不太了解浏览器对于Blob和File对象的开放程度,以为不支持直接下载。因为一直觉得浏览器下载必须要一个下载地址,不支持将变量中的文件保存到本地,直到看到了前端同事的代码才发现自己是错的,牢记牢记。

使用 window.URL.createObjectURL() 方法可以创建指向 Blob 或 File 对象的临时URL,这样你就可以在浏览器中下载这个 Blob 或 File 对象。

(1)、创建 Blob 对象

let blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});

(2)、创建指向 Blob 的 URL

let url = window.URL.createObjectURL(blob);

(3)、创建一个用于下载的链接

let a = document.createElement("a");  
a.href = url;  
a.download = "file.txt"; // 或者任何你想要的文件名  
a.style.display = 'none'; // 隐藏链接  
document.body.appendChild(a);

(4)、触发下载

a.click();

(5)、清理URL

window.URL.revokeObjectURL(url);

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/697.html

分享给朋友:

“js将Blob 或 File 对象通过浏览器进行下载” 的相关文章

HTML5的离线缓存技术

HTML5的离线缓存技术

离线缓存的开启实例使用apache设置 1.apache配置文件搜索Addtype,我的addtype已经存在项目,如下    AddType application/x-compress .Z    AddType application/x-gz...

阻止表单提交刷新页面

阻止表单提交刷新页面

<form action="save.php" method="post"   target="nm_iframe">      &nbs...

百度地图,腾讯地图生成导航链接

百度地图,腾讯地图生成导航链接

https://3gimg.qq.com/lightmap/v1/marker/index.html?marker=coord:37.6767600000,112.7297800000&key=TKUBZ-D24AF-GJ4JY-JDVM2-IBYKK-KEBCU&referer=p...

websql的使用方法

websql的使用方法

<!--          三个核心方法          openDatabase:这个方法使用现有数据库或创建...

 js构造函数

js构造函数

工厂模式虽然解决了创建多个对象的问题,但是并没有解决识别对象从属的问题.因为都属于object.因此出现了构造函数//构造函数名称首字母大写是规范 function Box(name,age){ this.name=name; this.age=age; this.run=funct...

高效服务器发送事件,服务器发送事件,服务器发送事件和长轮询的区别

高效服务器发送事件,服务器发送事件,服务器发送事件和长轮询的区别

HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新。通过官网的介绍可以看出是接收服务器发送数据,千万不能和ajax混淆,网上大片博文的介绍对其解读是错误的,导致让我差点觉得这个事件很鸡肋。先看通用案例:html5:<script type=&...