Blob、File、ArrayBuffer

161 阅读1分钟

1. Blob

概念:Blob全称Binary Large Object,表示二进制大对象,一个Blob对象就是一个包含有只读原始数据的类文件对象,简单来说,Blob就是一个只读的二进制文件,我们可以知道它的文件大小(size)、类型(type),并可以对其进行分割(slice)

可以通过URL.createObjectURL(blob) 创建一个blob url(blob协议的url,blob:xxxx),作为文件的下载地址和图片资源地址, blob url 只在当前应用内部有效;blob url 使用完之后需要调用revokeObjectURL释放;

2. ArrayBuffer

简单来说就是一片内存,表示原始二进制缓冲区,ArrayBuffer不能直接进行操作,需要借助typedArray或DataView进行读写

3. File

概念:提供文件的信息,并允许javascript访问其内容,通常来自于用户在一个input元素上传文件后返回的FileList对象,继承自Blob,常用属性 name、size、type

4.FileReader

读取Blob对象的工具,FileReader.readAsDataURL(blob)就是将二进制数据读取并编码为Base64格式,FileReader.readAsText(blob)就是将二进制数据读取并编码为字符串形式

5.FormData

XMLHttpRequest Level 2添加的一个新的接口,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,使用FormData我们可以异步上传一个二进制文件