【问题标题】:Trying to convert image to Base64 string in javascript and trying to convert to byte array in c#, gives Invalid character in base64 string error [duplicate]尝试在 javascript 中将图像转换为 Base64 字符串并尝试在 c# 中转换为字节数组,在 base64 字符串错误中给出 Invalid character [重复]
【发布时间】:2025-12-03 15:45:01
【问题描述】:

我正在尝试将 javascript 中的文件输入图像转换如下;

function getBase64(file) {
    let reader = new FileReader();
    reader.readAsDataURL(file);
    console.log(reader.result);
    return reader.result;
}

将带有json的字符串发送到Web服务并尝试转换为字节数组,如下所示;

byte[] imageBytes = Convert.FromBase64String(base64string);

在 base64 字符串错误中获取无效字符。

转换后的字符串数组:pastebin converted string array

Image I am trying to convert

【问题讨论】:

  • Convert.FromBase64String(base64string.Substring(base64string.IndexOf(',') + 1)); 应该删除 data-url 前缀并转换就好了。

标签: javascript c# base64 converters


【解决方案1】:

使用readAsDataURL 方法时,result 包含一个Data URL,其前缀为data: 架构。

来自MDN web docs

注意:文件的结果是一个不能直接解码为Base64的字符串。要仅检索 Base64 编码的字符串,您必须从字符串中删除 data:*/*;base64,

因此,就像 Jonathon Chase 评论的那样,您必须在 Javascript 代码中删除架构的前缀,然后再将其发送到您的 C# Web 服务或 Web 服务中。

【讨论】: