我正在将图像转换为html5移动客户端上的base64并将该字符串发布到我的webapi服务。我尝试将收到的字符串转换回图像,我得到以下异常
输入不是有效的Base-64字符串,因为它包含非基本64个字符,两个以上的填充字符或非法字符 在填充字符中。
Pastebin of base64 string is here
我已经阅读了有关重放错误字符的所有建议,所以我将此功能转移到第一部分并将其传递给它,但没有运气。
private string FixBase64ForImage(string Image)
{
System.Text.StringBuilder sbText = new System.Text.StringBuilder(Image, Image.Length);
sbText.Replace("\r\n", String.Empty);
sbText.Replace(" ", String.Empty);
sbText.Replace('-', '+');
sbText.Replace('_', '/');
sbText.Replace(@"\/", "/");
return sbText.ToString();
}
有没有办法确切知道哪个字符导致转换失败?
答案 0 :(得分:3)
我的猜测是你在字符串的开头包含了"data:image/png;base64,"
部分 - 你需要先删除它。你不需要做任何其他事情 - 使用pastebin中的文本,Convert.FromBase64String
处理“base64”之后的所有内容,而不会出现任何问题。