FileReader.readAsDataURL 在 Convert.FromBase64String 中输入时结果返回格式异常
FileReader.readAsDataURL result returning format exception when entered in Convert.FromBase64String
我正在使用以下方法将图像转换为 base64 编码的字符串。在 javascript 的客户网站上:
var reader = new FileReader();
reader.onloadend = function () {
data64 = reader.result;
};
reader.readAsDataURL(myFile);
现在我将此数据传递给服务器,服务器执行以下操作:
var data = Convert.FromBase64String(data64);
但是这会导致格式异常:
The format of s is invalid. s contains a non-base-64 character, more than two padding characters, or a non-white space-character among the padding characters.
我的输入文件是在 Windows 7 -> 我的 Pictures/Sample Pictures/Tulips.jpeg
上找到的示例图像之一
我如何尝试调试导致如此大的结果输出出现问题的原因?
好的,我已经通过使用 reader.readAsBinaryString
来解决这个问题,然后使用 btoa
.
转换它
这似乎在 Convert.FromBase64String
中被接受了
我遇到了同样的问题,发现我的完整dataurl不仅包含末尾的填充字符,而且还包含dataurl中间的填充字符。
我用下面的代码修复了base64string(但还是有bug):
private static string getCleanedBase64String(string base64String)
{
string tempString = base64String.Replace("_", "/").Replace("-", "+").Replace("=", "");
return tempString + new string('=', (4 - tempString.Length % 4) % 4);
}
我正在使用以下方法将图像转换为 base64 编码的字符串。在 javascript 的客户网站上:
var reader = new FileReader();
reader.onloadend = function () {
data64 = reader.result;
};
reader.readAsDataURL(myFile);
现在我将此数据传递给服务器,服务器执行以下操作:
var data = Convert.FromBase64String(data64);
但是这会导致格式异常:
The format of s is invalid. s contains a non-base-64 character, more than two padding characters, or a non-white space-character among the padding characters.
我的输入文件是在 Windows 7 -> 我的 Pictures/Sample Pictures/Tulips.jpeg
上找到的示例图像之一我如何尝试调试导致如此大的结果输出出现问题的原因?
好的,我已经通过使用 reader.readAsBinaryString
来解决这个问题,然后使用 btoa
.
这似乎在 Convert.FromBase64String
我遇到了同样的问题,发现我的完整dataurl不仅包含末尾的填充字符,而且还包含dataurl中间的填充字符。 我用下面的代码修复了base64string(但还是有bug):
private static string getCleanedBase64String(string base64String)
{
string tempString = base64String.Replace("_", "/").Replace("-", "+").Replace("=", "");
return tempString + new string('=', (4 - tempString.Length % 4) % 4);
}