Blob构造函数不在safari / opera中工作? [英] Blob constructor not working in safari / opera?
本文介绍了Blob构造函数不在safari / opera中工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从数组缓冲区构造一个Blob,原始来自二进制字符串。它在Firefox和Firefox中运行良好Chrome,但我不知道Safari&戏
I'm trying to construct a Blob from an array buffer that original comes from a binary string. It works fine in Firefox & Chrome, but I don't know whats wrong with Safari & Opera
这是我的问题的简化版本:
http://plnkr.co/edit/sfEEHf?p=preview
This is a simplified version of my problem: http://plnkr.co/edit/sfEEHf?p=preview
// 1x1 red PNG pixle
base64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIW2P8z8DwHwAFBQIAHl6u2QAAAABJRU5ErkJggg==";
byteString = atob(base64);
// convert binary to array buff so we can construct a blob later
arrayBuffer = new ArrayBuffer(byteString.length);
intArray = new Uint8Array(arrayBuffer);
for (i = 0; i < byteString.length; i += 1) {
intArray[i] = byteString.charCodeAt(i);
}
// construct blob
blob = new Blob([intArray], {type: "image/png"});
console.log(blob.size); // suppose to be 70 (its 19 in safari)
推荐答案
在Safari您需要使用 '缓冲' 属性的TypedArray,即这样的:
In Safari you need to use the 'buffer' property on the TypedArray, i.e. this:
blob = new Blob([intArray.buffer], {type: "image/png"});
它会起作用。
这篇关于Blob构造函数不在safari / opera中工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文