前端 Blob 详解
前端 Blob 详解
1. 什么是 Blob?
Blob(Binary Large Object)表示二进制大对象,用于存储二进制数据。在前端开发中,Blob 常用于处理文件、图像、视频等二进制数据。
2. 创建 Blob
可以通过 Blob 构造函数创建 Blob 对象。
const blob = new Blob(array, options);
- array: 数组,包含要放入 Blob 的数据。可以是字符串、ArrayBuffer、ArrayBufferView、Blob 等。
- options: 可选参数,包含两个属性:
- type: 指定 Blob 的 MIME 类型,如 'text/plain'、'image/png' 等。
- endings: 指定行结束符的处理方式,默认为 'transparent'。
示例:
const text = ["Hello, world!"]; const blob = new Blob(text, { type: "text/plain" });
3. Blob 的属性和方法
- 属性:
- size: Blob 对象的大小(字节)。
- type: Blob 对象的 MIME 类型。
示例:
console.log(blob.size); // 13 console.log(blob.type); // 'text/plain'
- 方法:
- slice(start, end, contentType): 返回一个新的 Blob 对象,包含原 Blob 的指定字节范围。
- start: 起始字节(包含)。
- end: 结束字节(不包含)。
- contentType: 新 Blob 的 MIME 类型。
示例:
const slicedBlob = blob.slice(0, 5, "text/plain");
4. 使用 Blob
- 下载文件:
可以通过创建 Blob URL 实现文件下载。
const link = document.createElement("a"); link.href = URL.createObjectURL(blob); link.download = "hello.txt"; link.click(); URL.revokeObjectURL(link.href); // 释放内存
- 读取 Blob 数据:
使用 FileReader 读取 Blob 数据。
const reader = new FileReader(); reader.onload = function (event) { console.log(event.target.result); // 读取的数据 }; reader.readAsText(blob); // 以文本形式读取
- 上传文件:
通过 FormData 上传 Blob 数据。
const formData = new FormData(); formData.append("file", blob, "hello.txt"); fetch("/upload", { method: "POST", body: formData, });
5. Blob 与 File
File 对象继承自 Blob,通常用于表示用户选择的文件。File 对象包含额外的属性如 name、lastModified 等。
示例:
const file = new File(["Hello, world!"], "hello.txt", { type: "text/plain" }); console.log(file.name); // 'hello.txt'
6. 总结
Blob 是前端处理二进制数据的重要工具,广泛应用于文件操作、数据存储和网络传输等场景。通过 Blob 构造函数、FileReader 和 FormData 等 API,可以高效地操作和传输二进制数据。
(图片来源网络,侵删)(图片来源网络,侵删)(图片来源网络,侵删)
- 上传文件:
- 读取 Blob 数据:
- 下载文件:
- slice(start, end, contentType): 返回一个新的 Blob 对象,包含原 Blob 的指定字节范围。
- 方法:
- 属性:
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。