I am trying to upload files and the current code supports file size upto 100MB and if the size of the file increases getting out of Memory screen in browser
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);
});
}
Can some one please suggest/help me to improve below method upload large data files.
I tried to slice large files into chunks and append while converting to base64 string but its not working and getting hanged even for 30 MB file.
Please let me know whats the error and correction required.
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);
});
}