我正在编写一个程序来从POP3邮箱中读取并将电子邮件上传到我的票证系统中。我想接收附件并上传它们。除了文件大小,我已经获得了所需的所有信息。
有没有办法从邮件消息中确定文件大小?我正在接受附件,解码base64编码的字符串并将其分解为字节数组以存储在数据库中。如果有另一种方法来确定文件大小,我也愿意尝试。
我在C#和.NET 3.5中工作。
感谢!!!
答案 0 :(得分:4)
base64解码字节数组的大小是否正确?如果是这样,你需要做的就是计算尺寸而不解码它,对吗?
大小为N的字节数组将编码为(N * 4)/ 3字节,总是向上舍入。您需要查看字符串的最后几个字符,以确定要舍入多少以进行舍入。基本上它应该是这样的:
string x = GetBase64DataFromWherever();
int size = (x.Length *3)/4;
if (x.EndsWith("="))
{
size--;
}
if (x.EndsWith("=="))
{
size--; // 1 will already have been removed by the if statement above
}
这是未经测试的,但可能您已经获得了可以尝试的良好测试数据:)