使用javascript将二进制数据转换为base64

新手上路,请多包涵

HTML5 使您能够在本地存储数据,我认为这很棒。例如,这里是你如何使用它:

         var store = window.localStorage;
        store.setItem('foo', "hellow world");
        var test = store.getItem('foo');
        // test should = "hellow world"

在 html 中,您可以通过将其来源设置为动态显示图像:

      "data:image/jpg;base64," + (base64string)

所以我的问题是 如何将二进制数据转换为 base64 字符串,以便我可以利用 html5 本地存储?

例如,如果我能:

 $.ajax({
   url: 'someImage.png',
   type: 'POST',
   success: function (r) {

                // here I want to convert r to a base64 string !
                // r is not binary so maybe I have to use a different approach
                var data = ConvertToBase64(r);

                document.getElementById("img").src = "data:image/png;base64," + data;
            },
});


我知道我可以通过使用 html5 将图像包裹在画布周围然后将其转换为 base64string 来解决这个问题。我也可以在服务器上创建一个特定的服务,该服务将发送该图像的 base64 字符串数据(someImage.aspx)。 我只想知道是否可以从服务器检索二进制数据并将其转换为 base64 字符串。

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

阅读 2k
2 个回答

试试 btoa 功能:

    var data = btoa(r);

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

仅供参考使用 node.js 的代码,它只是两个简单的函数调用。为了方便起见,我将它们包装在一个函数中。

 export function convertToBase64(bytes) {
  return bytes.toString("base64");
}

export function convertFromBase64(str) {
  return Buffer.from(str, "base64");
}

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

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