Estoy tratando de cargar archivos y el código actual admite un tamaño de archivo de hasta 100 MB y, si el tamaño del archivo aumenta, sale de la pantalla de memoria en el navegador.
private ProcessReadFile(file:File){ return new Promise<void>(resolve=>{ const reader= new FileReader(); let content:any; reader.onloadend=()=>{ content=reader.result; var fileContent=content.split('base64,')[1]; this.fileUpload.push({ Filecontent:fileContent; FileType:file.Type }); resolve; }; reader.readAsDataUrl(file); }); }¿Puede alguien sugerirme/ayudarme a mejorar el siguiente método para cargar archivos de datos de gran tamaño?
Intenté dividir archivos grandes en fragmentos y agregarlos mientras los convertía a una cadena base64, pero no funciona y me cuelgan incluso por un archivo de 30 MB.
Por favor, hágame saber cuál es el error y la corrección requerida.
private ProcessReadFile(start,file){ return new Promise<void>(resolve=>{ const reader= new FileReader(); var slice_size=10000*1024; var next_slice=start+slice_size+1; var blob=file.slice(start,next_slice); let content:any=''; reader.onloadend=()=>{ if(reader.readyState!==FileReader.Done) { return; } content=reader.result; let base64Split=content.split('base64,')[1]; let resultString=''; resultString=this.base64String+base64Split.toString(); this.base64String=resultString; if(next_slice<file.size) { this.ProcessReadFile(next_slice,file); } else { this.fileUpload.push({ Filecontent:fileContent; FileType:file.Type }); resolve; } }; reader.readAsDataUrl(file); }); }