简介
Blob(Binary Large Object)是对数据块的引用或句柄,通过 Blob 表示二进制数据、文本文件,进而可以对其进行一些操作。
Blob 语法
创建
语法
1 | var aBlob = new Blob( array[, options ]); |
- 参数
array是一个由ArrayBuffer,ArrayBufferView,Blob,DOMString等对象构成的Array,或者其他类似对象的混合体,它将会被放进Blob。DOMStrings会被编码为UTF-8。options它可能会指定如下两个属性:type,默认值为"",表示 array 参数中数据的 MIME 类型。endings,用于指定包含行结束符\n的字符串如何被写入"transparent",默认值,表示保持 Blob 中的结束符-
"native",表示行结束符会被更改为适合宿主操作系统文件系统的换行符
- 返回值
- Blob 对象
示例
1 | var aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 一个包含DOMString的数组 |
属性
Blob.size
Blob.size 为只读,返回 Blob 对象中所包含数据的大小(字节)。
1 | // fileInput是一个HTMLInputElement元素: <input type="file" multiple id="myfileinput"> |
Blob.type
Blob.type 为只读,返回一个字符串,表明该 Blob 对象所包含数据的 MIME 类型。如果类型未知,则该值为空字符串。
1 | // fileInput是一个 HTMLInputElement,HTML Input 元素: <input type="file" multiple id="myfileinput"> |
方法
Blob.slice
1 | Blob.slice([start[, end[, contentType]]) |
参数
返回值
- 返回一个新的
Blob对象,包含了源Blob对象中指定范围内的数据。
- 返回一个新的
Blob.stream
1 | Blob.stream() |
返回 ReadableStream 对象,能读取 Blob 内容。
Blob.text
1 | Blob.text() |
方法返回一个 Promise 对象,包含 Blob 中的内容,使用 UTF-8 格式编码。
1 | var textPromise = Blob.text(); |
Blob.arrayBuffer
1 | Blob.arrayBuffer() |
方法返回一个 Promise 对象,包含 Blob 中的数据, ArrayBuffer 使用二进制格式编码。
1 | var bufferPromise = blob.arrayBuffer(); |
Blob 数据来源
由其他 Blob 复制而来
从客户端数据库读取
通过 HTTP 由 web下载
使用 Blob 构造函数,从字符串、ArrayBuffer对象、或其他 Blob 创建
File 对象,File 对象是 Blob 对象的子类
File对象来源
- 拖放 API
- 文件系统 API