Blob、ArrayBuffer、File 的关系与转换
Blob、ArrayBuffer、File、FileReader、Base64 之间的关系是什么?如何进行它们之间的相互转换?何时使用 Blob 何时使用 ArrayBuffer?
回答
编译有声
Blob: 不可变原始数据,按 MIME 类型标记。File: 继承 Blob,增加 name/lastModified。ArrayBuffer: 固定长度二进制缓冲区,需通过 TypedArray 或 DataView 操作。FileReader: 异步读取 Blob/File。Blob->ArrayBuffer: blob.arrayBuffer() 或 new Response(blob).arrayBuffer()。ArrayBuffer->Blob: new Blob([buffer], {type:'image/png'})。Blob->Base64: FileReader.readAsDataURL。Blob 适合上传/下载;ArrayBuffer 适合 Crypto、Web Audio。