在Convert.FromBase64String中输入时,FileReader.readAsDataURL结果返回格式异常

时间:2015-09-11 19:35:57

标签: javascript base64 filereader

我正在使用以下内容将图像转换为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

如何尝试调试导致此类大结果输出问题的原因?

2 个答案:

答案 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);
    }