【问题标题】:Decode base64 image and upload解码base64图片并上传
【发布时间】:2013-02-15 00:04:21
【问题描述】:

我有一个 web 应用程序,它在本地保存图像,直到它们准备好发送到服务器。当我在本地保存图像时,我对它们进行 base64 编码。现在我想用这些图像进行多部分文件上传。

所以我需要将图像转换回二进制形式。我试过使用 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 事件并且没有错误。一旦我得到图像,我将无法上传它。有什么想法吗?

谢谢!

【问题讨论】:

    标签: javascript base64


    【解决方案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 kit 浏览器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-03
      • 2013-01-31
      • 2013-11-03
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      相关资源
      最近更新 更多