我有一个MVC Web应用程序,该应用程序具有将图像上传到服务器的功能。该功能适用于Android和Windows,但仅部分适用于iOS。在iOS上,某些图像可以从base64字符串转换为字节数组,而另一些则不能。我测试过的所有图像都是jpeg类型。
通过文件输入检索图像,然后通过javascript将其编码为base64字符串:
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
stringholder.value = reader.result;
picholder.src = reader.result;
};
此base64字符串然后传递到控制器,在此将其转换为字节数组:
var split = Image01.Split(',');
string Image01_Type = split[0] + ",";
string Image01_B64String = split[1];
byte[] Image01_Data = Convert.FromBase64String(Image01_B64String);
当尝试从base64字符串转换为字节数组时,某些图像导致以下错误:“ Base-64 char数组或字符串的长度无效。”
我无法终生弄清楚导致错误的原因。图像文件在javascript中无错误地转换为base64字符串,并且base64字符串本身看起来不错。
有人可以帮我找出问题所在吗?
*编辑:在iOS上转换时,base64字符串似乎被截断了。