Я столкнулся с проблемой с FileReader и прочитал довольно большие Blobs.FileReader не читает большие капли
const size = 50; //MB
const blob = new Blob([new ArrayBuffer(size*1024*1024)], {type: 'application/octet-string'});
console.log(blob.size);
const reader = new FileReader();
reader.onload = function(e) {
console.log(new Uint8Array(e.target.result));
};
reader.readAsArrayBuffer(blob.slice(0, 1024));
https://jsfiddle.net/aas8gmo2/
В приведенном выше примере показано, что OnLoad функция не вызывается каждый раз, когда (если он есть, увеличить размер Blob до 100/200/300 МБ). Проблема воспроизводится только в Chrome (проверено в соответствии с 53.0.2785.143)
Какие-либо намеки, что может быть неправильным?
Как я вижу, нет проблем с Blobs размером 2GB. Я полагаю, что у Chrome есть ошибка, потому что он обеспечивает оптимизацию для слишком больших Blob и перемещает их на HDD. – Suprido
Да, я просто проверил Safari & Firefox с огромным блобом из нескольких ГБ, проблема не воспроизводима. Здесь присутствует проблема с ошибкой https://codereview.chromium.org/2055053003/ для Chrome. Будем надеяться, что это скоро будет исправлено. – noKid