【问题标题】:Decode Javascript FileReader Base64 in C#在 C# 中解码 Javascript FileReader Base64
【发布时间】:2019-06-17 19:25:51
【问题描述】:

我有以下用于将文件转换为 base64 的 Javascript 代码:

File.prototype.convertToBase64 = function (callback) {
    var FR = new FileReader();
    FR.onload = function (e) {
        callback(e.target.result)
    };
    FR.readAsDataURL(this);
}

一个示例输出是:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj [...] /j+vigYmLtYx9n0tGzJIyZKIzsYyRRWj0RfdWtCiQdF9rH8f18SMciL7X8DJMySJ8uC4JDRWjH8CEiitULVaMf68GQYn2PvskyciSs26tDWr0ooorsWi0WiFIei0Y/10QkQkWWXo+xaNjetdjHo9YlFdi1eiell6LRj/AGIshIUjcKRej1Ws

但我无法用这个解码它: byte[] data = Convert.FromBase64String(base64Image);

它说它无法识别数据的布局。如何在 C# 的 JS 中解码来自 FileReader 的 base64 数据?

【问题讨论】:

  • 只是一个疯狂的猜测,但我认为解码器不喜欢data-uri的标题:data:image/jpeg;base64,
  • @Thomas 就是这样。我将其添加为答案。
  • 当@Thomas 值得称赞时,您基本上通过回答自己的问题并将其标记为正确答案来停止他的回答。
  • 为什么不直接将文件上传为二进制文件? base64 成本更高
  • @Endless 我的答案有标记吗?托马斯有答案吗?我的回答中没有记入 Thomas 的功劳吗?

标签: javascript c# base64 decode


【解决方案1】:

感谢 Thomas,我找到了解决方案。

C#-Decoder 不喜欢标题:data:image/jpeg;base64,

你可以用这个短代码修复它:

int index = base64Image.IndexOf("base64,") + "base64,".Length;
string base64String = base64Image.Remove(0, index);

【讨论】:

    猜你喜欢
    • 2011-11-14
    • 2018-04-23
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2011-08-13
    相关资源
    最近更新 更多