如何从 Javascript FileReader base64 字符串中剥离类型?

新手上路,请多包涵

我的 Javascript 中有以下代码:

 var reader = new FileReader();
reader.onloadend = function () {
    alert(reader.result);
};

这向我展示了以下数据:

  data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC

问题是我只想要逗号后面的部分。我尝试从 reader.result.value , reader.result.valueOf() 和其他一些组合中获取它,但找不到正确的组合来获取从逗号后开始的 base64 字符串。所以第二个想法是简单地去掉逗号和之前的所有内容,但我不确定该怎么做。

有人知道如何完成这项工作吗?欢迎所有提示!

原文由 kramer65 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 812
2 个回答

以下功能将达到您想要的结果:

 var base64result = reader.result.split(',')[1];

这会将字符串拆分为字符串数组,第一项(索引 0)包含 data:image/png;base64 ,第二项(索引 1)包含 base64 编码数据。

另一种解决方案是找到逗号的索引,然后简单地切断逗号之前的所有内容,包括逗号:

 var base64result = reader.result.substr(reader.result.indexOf(',') + 1);

请参阅 JSFiddle

原文由 Sani Singh Huttunen 发布,翻译遵循 CC BY-SA 3.0 许可协议

let reader: FileReader = new FileReader();

 reader.onloaded = (e) => {
    let base64String = reader.result.split(',').pop();
 };

或者

let base64String = /,(.+)/.exec(reader.result)[1];

原文由 Oleh Leskiv 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题