Encontré esta función para convertir arraybuffer a una cadena base64 que funciona bien por primera vez cuando cargo un archivo de alrededor de 700 MB. Nuevamente intenté cargar un archivo de 150 MB, el navegador está dando la excepción 'Memoria insuficiente'.
Método utilizado para convertir el búfer de matriz en una cadena base 64. Avíseme si hay una limitación de tamaño para window.btoa() o si es un problema de caché del navegador.
function _arrayBufferToBase64( buffer ) { var binary = ''; var bytes = new Uint8Array( buffer ); var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode( bytes[ i ] ); } return window.btoa( binary ); }Estoy llamando al método anterior en Filereader para leer el archivo.
private ProcessReadFile(file:File){ return new Promise<void>(resolve=>{ const reader= new FileReader(); let content:any; reader.onloadend=()=>{ content=reader.result; var fileContent=_arrayBufferToBase64(content); this.fileUpload.push({ Filecontent:fileContent; FileType:file.Type }); resolve; }; }); }Intenté con el método "_arrayBufferToBase64" y la primera vez que se carga bien para 600 MB y nuevamente traté de cargar un archivo de 150 MB, el navegador muestra la página "sin memoria". Por favor, déjame ahora cómo podemos evitar esto o si hay algún límite de tamaño o el método anterior se almacena en la memoria caché del navegador.
Por favor recomiende