Blob 文件格式详解:前端二进制数据处理实战
在前端开发中,处理文件、多媒体或大体积数据时,Blob 对象几乎是绕不开的核心工具。它让我们能直接在浏览器内存中操作二进制流,无需依赖服务器中转,极大地提升了交互体验。
什么是 Blob?
Blob(Binary Large Object,二进制大对象)是 JavaScript 中表示二进制数据的对象。你可以把它理解为一个不可变的、类似文件的容器,专门用来存储大量原始数据。
// 创建一个简单的 Blob 对象
const blob = new Blob(['Hello, world!'], { type: 'text/plain' });
Blob 的基本特性
- 不可变性:一旦创建,内容无法直接修改,只能生成新的 Blob。
- 类型标识:通过 MIME 类型明确数据格式,如
image/png。 - 大小存储:支持存储海量二进制数据,受限于可用内存。
- 分片能力:可通过
slice()方法切割成更小的块,方便处理大文件。
Blob 的构造函数
使用 new Blob() 创建实例,主要接受两个参数:
new Blob(blobParts, options);
- blobParts:由
ArrayBuffer、ArrayBufferView、Blob或DOMString构成的数组。 - options:可选配置,包含
type(MIME 类型)和endings(行结束符处理方式)。
常见使用场景
1. 文件下载
这是最经典的使用方式。将数据转为 Blob,生成临时 URL,触发 <a> 标签点击即可下载。
function downloadFile(content, filename, type) {
const blob = new Blob([content], { type });
const url = URL.createObjectURL(blob);
const a = document.createElement();
a. = url;
a. = filename;
a.();
.(url);
}
(, , );


