首页 > 解决方案 > 将 base64 字符串转换为字节数组失败,来自 iOS 的 base64 字符串 - “Base-64 字符数组或字符串的长度无效”

问题描述

我有一个 MVC webapp,其功能是将图像上传到服务器。该功能适用​​于 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 字符数组或字符串的长度无效。”

我一生都无法弄清楚导致错误的原因。图像文件在 javascript 中无错误地转换为 base64 字符串,并且 base64 字符串本身看起来很好。

任何人都可以帮我找出问题所在吗?

*编辑:base64 字符串在 iOS 上转换时似乎被截断。

标签: c#iosarraysmodel-view-controllerbase64

解决方案


推荐阅读