Bootstrap

发送和接收二进制数据(Blob),也就是流

前言

可以通过设置一个XMLHttpRequest对象的 responseType属性来改变一个从服务器上返回的响应的数据类型。

可用的属性值为空字符串 (默认), "arraybuffer", "blob", "document","json" 和 "text". response属性的值会根据responseType属性包含实体主体(entity body)。

 它可能会是一个 ArrayBufferBlobDocument,JSON, string,或者为NULL(如果请求未完成或失败)。

 

读取二进制数据

通过给responseType属性设置为“blob”,将二进制文件读取为Blob类型的数据。

var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "blob";

oReq.onload = function(oEvent) {
  var blob = oReq.response;
  // ...
};

oReq.send();

 

发送二进制数据

XMLHttpRequest对象的send方法已被增强,可以通过简单的传入一个ArrayBufferBlob, 或者 File对象来发送二进制数据。

var oReq = new XMLHttpRequest();
oReq.open("POST", url, true);
oReq.onload = function (oEvent) {
  // 上传完成后.
};

var bb = new BlobBuilder(); // 需要合适的前缀: window.MozBlobBuilder 或者 window.WebKitBlobBuilder
bb.append('abc123');

oReq.send(bb.getBlob('text/plain'));

 

;