我正在使用以下内容将图像转换为base64编码的字符串。在客户端网站上的javascript:
var reader = new FileReader();
reader.onloadend = function () {
data64 = reader.result;
};
reader.readAsDataURL(myFile);
现在我将此数据传递给服务器,服务器执行以下操作:
var data = Convert.FromBase64String(data64);
然而,这会导致格式异常:
s的格式无效。 s包含非base-64字符,两个以上的填充字符或填充字符中的非空白字符。
我的输入文件是在Windows 7上找到的示例图像之一 - >我的照片/样本图片/ Tulips.jpeg
如何尝试调试导致此类大结果输出问题的原因?
答案 0 :(得分:1)
好的,我通过使用reader.readAsBinaryString
代替然后使用btoa
进行转换来解决这个问题。
这似乎在Convert.FromBase64String
答案 1 :(得分:0)
我遇到了同样的问题,发现我的完整数据包不仅包含最后的填充字符,还包含dataurl中间的填充字符。 我使用以下代码来修复base64string(但它仍然有一个错误):
private static string getCleanedBase64String(string base64String)
{
string tempString = base64String.Replace("_", "/").Replace("-", "+").Replace("=", "");
return tempString + new string('=', (4 - tempString.Length % 4) % 4);
}