FileReader:DOMException,无法将blob转换为base64字符串



Im使用FileReader将Blob(从大于2GB的文件创建(转换为base64字符串。但遗憾的是,我最终出现了以下错误:

DOMException: The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired

如果文件低于2GB,则工作正常。

转换器:

private convertBlobToBase64 = (blob: Blob, filename: string) => new Promise<FileForSaveInDevice>((resolve, reject) => {
console.log('Blob', blob);
const reader = new FileReader();
reader.onerror = reject;
reader.onload = () => {
resolve({ base64: reader.result as string, filename });
};
reader.readAsDataURL(blob);
});

我发现了一个类似的问题,但没有得到回答:FileReader:DOMException,无法一次又一次地将blob转换为arrayBuffer

为什么要这么做?我建议你把文件分成块

blobInChunks(blob:Blob) {
let chunkSize = 1024 * 1024 * 64; //64Mb
let chunks = Math.ceil(blob.size/chunkSize) ;
let chunk = 0 ;
let _chunksArray:Blob[] = [] ;

while (chunk++ <= chunks) {
let offset = chunk*chunkSize ;
_chunksArray.push(blob.slice(offset, offset + chunkSize)) ;
}
return _chunksArray ;
}

最新更新