通过javascript将base64字符串转换为字节数组

新手上路,请多包涵

我想通过 javascript 将“base64”字符串转换为字节数组。

我从 URL 中收到了字符串。

  ("data:image/jpeg;base64,/9j/4QN6RXhpZgAASUkqAAgAAAAIA)

我想将字符串转换为字节数组。因为我需要这个字节数组来发送 Rest API 端点。其余 API Content-type=application/octet-stream。

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

阅读 1.1k
1 个回答

您可以使用 XMLHttpRequest 为您完成肮脏的工作:

 var url = document.createElement("canvas").toDataURL(); // some data-uri

var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.responseType = "arraybuffer";
xhr.onload = function() {
  // result = ArrayBuffer, from here assign a view to it
  if (xhr.status === 200) console.log(new Uint8Array(xhr.response));
};
xhr.send();

它比使用 atob() 多一点代码,但所有转换都在内部发生。它也是异步的,可以帮助处理更大的数据 URI。

在较新的浏览器(支持它)中,您可以改用 fetch()

 // note: atm not all browsers support these features.
fetch(document.createElement("canvas").toDataURL())  // pass in some data-uri
  .then(function(response) {return response.arrayBuffer()})
  .then(function(buffer) {
    console.log(new Uint8Array(buffer));
  });

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

推荐问题