某些场景下我们会有通过Base64计算文件大小的需求,比如已知某个图片的base64字符串,如何知道该图片文件大小?
可以通过以下公式计算:
x为文件大小
n为Base64字符串长度
y为结尾填充的“=”数量,Base64结尾填充的“=”最多为2个,即Base64字符串以“==”结尾值为2,以“=”结尾值为1,结尾无“=”值为0
c#实现如下:
/// <summary>
/// 根据base64字符串获取文件大小
/// </summary>
/// <param name="fileBase64Str">文件的base64字符串</param>
private int GetFileSizeFromBase64(string fileBase64Str)
{
var padding = 0;
if (fileBase64Str.EndsWith("=="))
{
padding = 2;
}
else if(fileBase64Str.EndsWith("="))
{
padding = 1;
}
var fileSize = fileBase64Str.Length * 3 / 4 - padding;
return fileSize;
}