Blob(个人学习)

简介

  • Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。

内容

构造函数

  • var aBlob = new Blob( array, options );
  1. DOMStrings会被编码为UTF-8。
  2. options:
  • type,默认值为 “”,它代表了将会被放入到blob中的数组内容的MIME类型
  • endings,默认值为"transparent",用于指定包含行结束符\n的字符串如何被写入。
    • “native”,代表行结束符会被更改为适合宿主操作系统文件系统的换行符,或者
    • “transparent”,代表会保持blob中保存的结束符不变

属性

Blob.size

  • 只读 Blob 对象中所包含数据的大小(字节)。

Blob.type

  • 只读 一个字符串,表明该 Blob 对象所包含数据的 MIME 类型。如果类型未知,则该值为空字符串。

方法

Blob.slice([start[, end[, contentType]]])

  • 返回一个新的 Blob 对象,包含了源 Blob 对象中指定范围内的数据。
  • start 可选
    这个参数代表 Blob 里的下标,表示第一个会被会被拷贝进新的 Blob 的字节的起始位置。如果你传入的是一个负数,那么这个偏移量将会从数据的末尾从后到前开始计算。举例来说, -10 将会是 Blob 的倒数第十个字节。它的默认值是0, 如果你传入的start的长度大于源 Blob 的长度,那么返回的将会是一个长度为0并且不包含任何数据的一个 Blob 对象。
  • end 可选
    这个参数代表的是 Blob 的一个下标,这个下标-1的对应的字节将会是被拷贝进新的Blob 的最后一个字节。如果你传入了一个负数,那么这个偏移量将会从数据的末尾从后到前开始计算。举例来说, -10 将会是 Blob 的倒数第十个字节。它的默认值就是它的原始长度(size).
  • contentType 可选
    给新的 Blob 赋予一个新的文档类型。这将会把它的 type 属性设为被传入的值。它的默认值是一个空的字符串。

Blob.stream()

  • 返回一个能读取blob内容的 ReadableStream
    • 流操作API 中的ReadableStream 接口呈现了一个可读取的二进制流操作。

Blob.text()

  • 返回一个promise且包含blob所有内容的UTF-8格式的 USVString。
    • 在JavaScript中返回时, USVString 映射到 String 。

Blob.arrayBuffer()

  • 返回一个promise且包含blob所有内容的二进制格式的 ArrayBuffer
    • ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。

从 Blob 中提取数据

使用 FileReader。以下代码将 Blob 的内容作为类型数组读取:

var reader = new FileReader();
reader.addEventListener("loadend", function() {
   // reader.result 包含被转化为类型数组 typed array 的 blob
});
reader.readAsArrayBuffer(blob);

注意

  1. 要从其他非blob对象和数据构造一个 Blob,请使用 Blob() 构造函数。
  2. 要创建一个 blob 数据的子集 blob,请使用 slice() 方法。
  3. 要获取用户文件系统上的文件对应的 Blob 对象,请参阅 File 文档。
  4. slice() 方法在某些浏览器和版本上带有浏览器引擎前缀:比如 Firefox 12 及更早版本的blob.mozSlice() 和 Safari 中的blob.webkitSlice()。 没有浏览器引擎前缀的老版本 slice() 方法有不同的语义,并且已过时。Firefox 30 取消了对 blob.mozSlice() 的支持。
  5. slice() 方法原本接受 length 作为第二个参数,以表示复制到新 Blob 对象的字节数。如果设置的参数使 start + length 超出了源 Blob 对象的大小,则返回从开始到结尾的所有数据。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值