7

我有一个用 Base64 编码的文件,具有一定的文件长度。如何获取以字节为单位的大小?

例子:

var size= canvas.toDataURL();   

console.log(resizeCanvasURL.length);


// -> 132787  base64 length
4

3 回答 3

11

Base64 编码中的每个符号包含 6 位信息。普通文件中的每个符号都包含 8 位。因为解码后你有你需要的相同数量的信息:

normal file size - 1000 bytes
base64 file size - 1333 bytes
于 2013-07-01T16:47:22.083 回答
7

mishik 的回答是错误的。

Base64 用 =-chars 填充(具有正确数量的位)。所以应该是

    var byteLength = parseInt((str).replace(/=/g,"").length * 0.75));
于 2016-09-22T13:12:53.910 回答
0
const stringLength = resizeCanvasURL.length 
const sizeInBytes = 4 * Math.ceil(stringLength / 3) * 0.5624896334383812;
const sizeInKb = sizeInBytes / 1000;

或者

 const stringLength = resizeCanvasURL.length 
 const sizeInBytes = stringLength * (3 / 4) - 2;
 const sizeInKb = sizeInBytesNew / 1000;
于 2020-10-21T06:58:47.810 回答