ArrayBuffer 与 Blob 互转
说一下 ArrayBuffer 转成 Blob。是调用 new Blob 构造函数:
function bufToBlob(buf, mimeType = ""){
return new Blob([buf], { type: mimeType });
}
Blob 函数的第二个参数与 File 函数的第二个参数略有不同,Blob 是一个对象,对象中有一个 type 属性,默认值为 “”,它代表了将会被放入到blob中的数组内容的 MIME 类型。Blob 的第一个参数也是一个由 ArrayBuffer, ArrayBufferView, Blob, DOMString 等对象构成的数组。
DOMString 是 DOM 字符串,比如:hey!。它的 type 则是:text/html。
然后是 Blob 转成 ArrayBuffer。Blob 转成 ArrayBuffer 也是通过 FileReader 类进行转换。上面的 File 转 ArrayBuffer 我们稍微更改一下即可:
function blobToBuf(blob, cb){
var fr = new FileReader();
var type = blob.type;
fr.readAsArrayBuffer(blob);
fr.addEventListener("loadend",(e) => {
var buf = e.target.result;
cb(buf, type);
},false);
}
原文详细链接,有需要更详细的信息可以去原文寻找.