我有一个webapp,它在本地保存图像,直到它们准备好发送到服务器。当我在本地保存图像时,我对它们进行了64位编码。现在我想用这些图像上传多部分文件。
所以我需要将图像转换回二进制形式。我已经尝试过使用FileReader将其转换回来,
var fr = new FileReader();
fr.onloadend = function(binaryImage){
debugger;
binaryImage;
};
var base64Str = item.base64Image.substr(item.base64Image.indexOf("base64") + 7);
//var base64Str = item.base64Image;
fr.readAsBinaryString(base64Str);
但是onloadend事件永远不会被触发,也没有错误。一旦我得到图像,我就不会上传它。有什么想法吗?
谢谢!
答案 0 :(得分:1)
不熟悉FileReader,但我相信readAsBinaryString需要一个Blob或File对象。传递一个字符串会导致我的错误。试试这个:
var fr = new FileReader();
fr.onloadend = function(binaryImage){
debugger;
binaryImage;
};
var blob = new Blob([item.base64Image.
substr(item.base64Image.indexOf("base64") + 7)]);
fr.readAsBinaryString(blob);
我不认为这会给你想要的。查看本文,了解编码/解码Base64的方法:How can you encode to Base64 using Javascript?
看起来您可以将btoa()和atob()用于Web工具包浏览器。