【发布时间】:2013-07-03 10:03:36
【问题描述】:
我正在尝试从原始来自二进制字符串的数组缓冲区构造一个 Blob。它在 Firefox 和 Chrome 中运行良好,但我不知道 Safari 和 Opera 有什么问题
这是我的问题的简化版本: 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)
【问题讨论】:
-
使用的方法只有FF/Chrome/IE10支持,兼容性列表请看developer.mozilla.org/en-US/docs/JavaScript/Typed_arrays/…
-
您知道任何解决方法吗?使用类型化数组对我来说有点新鲜......只想从二进制字符串转到 blob
标签: javascript