c# - 将 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 上转换时似乎被截断。
解决方案
推荐阅读
- pandas - Pandas 数据框:使用条件和切片字符串创建新列
- amazon-web-services - SAM/Serverless/CodeBuild 说明
- macos - 如何在swiftui(macos)中将文本字段添加到工具栏
- node.js - 如何使用节点和快递存储身份验证令牌
- c# - 调试 Azure IoT Edge 模块 C#(如何命中断点)
- amazon-web-services - AWS - 您可以将您的 KMS 密钥从一个账户转移到另一个账户吗?
- python-3.x - 如何使用 bind = True 从任务中创建一个组?
- python - 在 pandas 中组合数据框以将贷方分配给借方
- javascript - 如何通过路由器传递数据?
- c# - 如何使这个 LINQ to SQL where 条件的子句更快?