在AngularJS中将base64数据URL转换为图像文件

11

我在我的AngularJS控制器中有一个base64数据URL,我需要从中获取一张图片文件,以便可以通过ajax发送到服务器作为多部分数据?

我正在寻找类似于AngularJS文件写入程序的东西。 请问有人能帮我吗?

1个回答

22

您可以从 base64 数据生成 Blob。

var imageBase64 = "image base64 data";
var blob = new Blob([imageBase64], {type: 'image/png'});
从这个 blob 中,你可以生成文件对象。
var file = new File([blob], 'imageFileName.png');
您可以使用此文件对象,并使用多部分数据将其发布到服务器。

任何时候 :) 很高兴能帮助到您 :) - dhavalcengg
尽管我保存了这张图片,但它显示不是PNG文件,无法查看。你能告诉我为什么吗? - Aarohi Kulkarni
1
blob文件的内容类型是application/octet-stream,而不是image/png,传给服务器(Python Django)时会出现这种情况。因此,我猜测它无法将其保存为图像文件。我不确定如何创建此代码的plunkr。 - Aarohi Kulkarni
你可以在 blob 构造函数中传递 blob 类型。请检查我的更新答案。 - dhavalcengg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接