JavaScript 创建下载文件之Blob和File

JavaScript 创建下载文件之Blob和File
最新回答
幼儿园的小酷比

2026-10-27 11:53:15

文件下载的传统方式是后端程序在服务器端生成文件,随后前端通过链接打开下载。但随着浏览器技术的进步,现在可以直接通过接口获取文件流,在前端生成文件和下载链接,这种方式无需在服务器上存储临时或永久文件。

本文将探讨如何使用原生JavaScript实现文件的生成和下载。

在浏览器中,File API是一个高级对象,得到了广泛支持。利用File API创建文件非常简便,它基于Blob,并扩展了Blob的功能,使其能够支持用户系统上的文件。

具体参数描述如下:为了生成包含text/plain类型数据的文件(如文本、HTML、CSV等),需要使用blob或缓冲区来生成更抽象的文件类型。

对于CSV或EXCEL文件,可以使用Blob。ArrayBuffer是ECMA标准的一部分,也是JavaScript的一部分。在浏览器中生成文件,除了File API,还可以使用Blob。

Blob(Binary Large Object)表示二进制类型的大对象,通常用于存储图像、声音或多媒体文件。在JavaScript中,Blob类型的对象表示不可变的类似文件对象的原始数据。

Blob由一个可选的字符串类型(通常是MIME类型)和blobParts组成:其他Blob对象、字符串和BufferSource的序列。

构造函数语法是:

要检查创建的文件是否有效,需要访问它并进行下载。实现方式是生成一个包含文件引用的链接,然后通过JavaScript的click事件触发下载。

为了接收文件URL,需要使用URL.createObjectURL()方法,将文件对象作为参数。然后,通过设置链接的下载属性,指定保存的文件默认名称。

最后,将链接挂载到DOM中,单击后从DOM中删除。以下是完整的代码:

如果是通过接口获取文件流并生成下载文件,可以参考以下Vue代码片段: