使用Phonegap将base64字符串保存为图片?

4
我从服务器得到了一个png文件的Base64字符串,我想将该图片保存到文件系统中。看起来PhoneGap Filewriter只支持二进制。有没有人知道如何将这个Base64字符串转换成PhoneGap可用的格式?我曾试图使用window.atob和window.btoa,但并不能理解其中的含义。

如果只有一个文件,您可以将其存储在本地存储中。 - Divesh Salian
我的要求是将其保存在文件系统中。 - vijar
你可能想查看这个帖子,它可以将base64格式的dataUrl保存为png图像到Android文件系统中。 - Hazem Hagrass
3个回答

2
您不能使用PhoneGap FileWriter来写入二进制数据。您需要编写一个插件将base64编码的数据发送到本地端,然后使用本地代码将其编码为二进制并进行写入。
请查看此处的插件信息:HERE,同时查看PhoneGap源代码以了解我们如何执行文件写入,您可以添加一些代码在写入前进行base64解码。

你也可以参考这个链接 - http://blog.danguer.com/2011/10/24/base64-binary-decoding-in-javascript/ - Suhas Gosavi
1
我相信你可以使用PhoneGap的文件写入器在IOS和Android中写入二进制数据。http://docs.phonegap.com/en/3.0.0/cordova_file_file.md.html#FileWriter - vijar
请参考以下链接:https://dev59.com/FGgu5IYBdhLWcg3wWV2F - Suhas Gosavi
请注意:使用FileWriter编写二进制文件的功能已添加到PhoneGap 2.9中。 - vijar

0
据我所知,PhoneGap没有提供一种将图像保存到文件系统的方法。您需要使用PhoneGap插件来完成此操作。
Canvas2Image几乎可以实现您想要的功能。它接受一个画布ID,从画布中提取一个base64字符串,并将其保存为图像。您可以稍微修改插件的JavaScript部分,以接受base64字符串而不是画布ID。

0

刚刚发现了一个好的插件,可以将BASE64保存到文件系统中。

Phonegap图像调整大小器

window.imageResizer.storeImage(
  function(json) { 
    console.log('Saved to ' + json.url) 
  }, function (error) {
    console.log("Error : \r\n" + error);
  }, imageDataInBase64);

更多细节请查看注释imageresize.js


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