Javascript FileReader.readAsDataURL结果在Convert.FromBase64String中输入时返回格式异常
我使用下面的代码将图像转换为base64编码字符串。在javascript的客户端网站上:Javascript FileReader.readAsDataURL结果在Convert.FromBase64String中输入时返回格式异常,javascript,base64,filereader,Javascript,Base64,Filereader,我使用下面的代码将图像转换为base64编码字符串。在javascript的客户端网站上: var reader = new FileReader(); reader.onloadend = function () { data64 = reader.result; }; reader.readAsDataURL(myFile); 现在,我将此数据传递给服务器,服务器执行以下操作: var data =
var reader = new FileReader();
reader.onloadend = function () {
data64 = reader.result;
};
reader.readAsDataURL(myFile);
现在,我将此数据传递给服务器,服务器执行以下操作:
var data = Convert.FromBase64String(data64);
但是,这会导致格式异常:
s的格式无效。s包含非base-64字符、两个以上的填充字符或填充字符中的非空白字符
我的输入文件是在Windows 7->My Pictures/sample Pictures/Tulips.jpeg上找到的示例图像之一
如何尝试调试导致如此大的结果输出出现问题的原因 好的,我已经通过使用
reader.readAsBinaryString
解决了这个问题,然后使用btoa
转换它
<>这似乎在<代码>转换中被接受了。从Base64字符串
我经历了同样的问题,并发现我的完整数据表不仅包含了结尾的填充字符,而且包含了数据中心中间的填充字符。 我使用以下代码修复base64string(但它仍然有一个bug):
尝试使用
*.png
图像。可能您的服务器只能接受base64/png
private static string getCleanedBase64String(string base64String)
{
string tempString = base64String.Replace("_", "/").Replace("-", "+").Replace("=", "");
return tempString + new string('=', (4 - tempString.Length % 4) % 4);
}