Javascript 从Chrome中的大Blob创建arraybuffer
我有一个从blob创建arrayBuffer的简单方法:Javascript 从Chrome中的大Blob创建arraybuffer,javascript,google-chrome,blob,filereader,arraybuffer,Javascript,Google Chrome,Blob,Filereader,Arraybuffer,我有一个从blob创建arrayBuffer的简单方法: var blob=somehowGetBlob(); var reader = new FileReader; reader.onload = function () { onComplete(reader.result); }; reader.onerror = function (err) { switch (err.target["error"].code) {
var blob=somehowGetBlob();
var reader = new FileReader;
reader.onload = function () {
onComplete(reader.result);
};
reader.onerror = function (err) {
switch (err.target["error"].code) {
case err.target["error"].NOT_FOUND_ERR:
console.log("not found");
break;
case err.target["error"].NOT_READABLE_ERR:
console.log("not read");
break;
default:
console.log("default");
break;
};
};
reader.readAsArrayBuffer(blob);
一切都是正常的,当我在IE11中运行它时,阅读器总是触发它的onload事件
在chrome中,如果blob的大小很小,那么一切都是正常的。我测试了它,最高可达4MB,但当我使用90MB测试它时,它总是触发NOT_FOUND_ERR
这正常吗?还是有一些变通办法?还是只是Chrome中的一个bug?听起来像个bug。你查过他们的问题数据库了吗?查过一些,但找不到类似这样的具体案例,比如你应该尝试使用流的能力,读取高达90MB的RAM不是那么理想,尤其是在手机上,尝试读取/处理文件块?