类型化数组可以表示可编制索引和操作arrayBuffer对象的各种视图。
Int8Array
Uint8Array
Int16Array
Uint16Array
Int32Array
Uint32Array
Float32Array
Float64Array
PS:
Int 是整形
Uint是无符号整形
Float是浮点型
DataView对象
DOMString 指的是UTF-16字符串
FormData 对象
formData最大的特点可以异步上传一个二进制文件。
formData.append(key,value);
void append(DOMString,Blob,[DOMString文件名]) // DOMString文件名如果为空的话,会被blob替换掉的。
void append(DOMString,DOMString)
Blob对象
一个Blob对象就是一个包含有只读原始数据的类文件对象,Blob对象中的数据不一定是javascript中的原生形式,File接口基于Blob,继承Blob功能,并且扩展支持了用户计算机上的本地文件。
创建Blob对象的几种方式
1.调用Blob的构造函数
2.使用一个已经有的Blob对象上的slice方法切出另外一个Blob对象
3.使用canvas对象上的toBlob方法
更多的实现是图片的二进制形式的上传和下载,实现任意文件的上传和下载。
对于新建Blob对象 属性
size:Blob对象中所包含数据的大小,字节为单位,只读。
type: 该对象所包含的MIME类型,只读。
构造函数
Blob([array parts],[blobpropertyBag properties])
array parts:添加到Blob对象中的数据,支持ArrayBuffer,ArrayBufferView,Blob,DOMString
blobpropertyBag properties: 目前只支持一个type属性,表示Blob的类型
File对象
可以使用<input type='file'> 也可以使用拖拽搞出的DataTransfer对象
这里的file也是二进制文件,从属于Blob对象。
属性
lastModifiedData
name
size
type
方法
使用 FileReader.readAsBinaryString 方法
arrayBuffer
存储二进制数据的原始缓冲区
对于arrayBuffer 本身是不支持读写的,需要借助类型化数组或者dataView对象来解释原始缓冲区。
DataView对象
dataView对象可以在arrayBuffer中的任何位置读取和写入不同类型的二进制数据。
######################################################################################
var blob = new Blob([new Unit8Array(data)],{type:'octet/stream'})