Мне нужно прочитать большой файл, который пользователь загружает с помощью API файла javascript. Поскольку этот файл огромен, чтение его как есть приводит к сбою браузера. Итак, я нарезаю файл, и он формирует массив больших двоичных объектов (может ли метод среза создать массив любого другого типа?).
JS-код:
var chunkSize = 100000;
var currentStart = 0;
var currentEnd = Math.min(currentStart+chunkSize, file.size);
while(currentEnd != file.size){
var blobPart = file.slice(currentStart, currentEnd);
blobs.push(blobPart);
currentStart = currentEnd+1;
currentEnd = Math.min(currentStart+chunkSize, file.size);
}
После этого у меня есть массив капель, известных как «капли». Как мне сохранить этот массив (я использую localforage (indexeddb)). В настоящее время я храню массив BLOB-объектов как есть.
JS-код:
localforage.setItem(file.name,blobs,function(){
localforage.getItem(file.name, function(err, value){
var fullRetrievedBlobArray = [];
var x = value;
});
});
Может ли помочь его преобразование во что-то другое? Или я должен прочитать капли в массиве «blobs» и преобразовать их в один большой массив? (Если да, то как мне это сделать?).
После получения x будет содержать массив больших двоичных объектов, которые я хранил. Теперь как объединить этот большой двоичный объект, чтобы получить исходный файл в виде URL-адреса больших данных?
Если я загружу видео таким же образом? Как я могу объединить массивы больших двоичных объектов, чтобы сформировать URL-адрес данных для добавления к тегу атрибута видеотега html 5? Кроме того, может ли кто-нибудь дать небольшое объяснение высокого уровня того, как localforage хранит этот массив. Он прямо устанавливает?