尝试在 javascript 中将图像转换为 Base64 字符串并尝试在 C# 中转换为字节数组,给出 Invalid character in base64 string 错误

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

我正在尝试按如下方式转换 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

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

来自MDN web docs

Note: The file's result results in a string that cannot be directly decoded as Base64. To retrieve only the Base64 encoded string, you must remove data:*/*;base64, from the string.

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