Blob数据类型及应用

JavaScript中有一种专门存放二进制数据的数据类型对象,叫blob,是从HTML5引入的。
blob的英文名称为Binary Large Object,即二进制的大型对象。
File对象继承自blob对象,并有一些额外的拓展功能。

创建方法

利用构造函数Blob(array, options)

array: 必需,数组类型,其中数组元素是二进制对象或者字符串;
options: 可选,对二进制数据的MIME类型说明,包含两个属性,type和endings;

var blob = new Blob(['Hello World'], {
	type: 'text/plain', // MIME类型说明
	endings: 'transparent' // 默认transparent,还可以为native;
})

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

从一个源blob对象生成一个新blob对象,包含了源blob对象中指定范围的数据,以字节为单位。
start: 数据起始位置,默认为0;
end: 数据结束位置,默认为blob对象的size属性;
contentType: 规定新的blob对象的MIME类型,即给type属性传入该值;

属性(都是可读)

size:返回当前对象的字节长度;
type:返回数据的MIME类型;

读取数据

从blob对象中读取数据的唯一方法就是利用FileReader对象的方法,不同的方法针对读取后的数据类型,如readAsArrayBuffer()方法将数据读取为类型数组;

应用场景

大文件分段上传

将大文件用slice()方法切割成段,分段上传;

通过URL下载文件

创建标签元素,将文件内容用blob构造函数创建为blob对象;
用window对象的属性URL对象的方法createObjectURL(),传入刚刚创建的blob对象,返回一个DOMString对象,赋予标签元素的href属性。
设置标签的download属性为下载文件的文件名(加文件扩展名)。
点击标签即可下载;

URL全局对象的应用

URL作为window对象的属性,其中静态方法URL.createObjectURL()方法应用最多,可以用于在浏览器上预览图片和视频,以及下载文件,但不管是图片还是视频,本质上都是二进制数据,这些数据必须是本地硬盘或者是内存中的才行(内存中的数据可以是通过ajax请求得到的)。
URL.createObjectURL()方法将file或者blob转为DOMSring字符串(UTF-16编码),元素的src或者href属性都可以赋值为该DOMString字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值