首页 > 解决方案 > 尝试在 javascript 中将图像转换为 Base64 字符串并尝试在 c# 中转换为字节数组,在 base64 字符串中出现 Invalid character 错误

问题描述

我正在尝试在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转换后的字符串数组

我正在尝试转换的图像

标签: javascriptc#base64converters

解决方案


使用该readAsDataURL方法时,result包含一个以模式为前缀的数据 URLdata:

来自MDN 网络文档

注意:该文件的结果导致无法直接解码为 Base64 的字符串。要仅检索 Base64 编码的字符串,您必须data:*/*;base64,从字符串中删除。

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


推荐阅读