3

我只是好奇如何将数据包装在URL.createObjectURL.

所以我写了下面的代码。

function typedArrayToURL(typedArray, mimeType) {
  return URL.createObjectURL(new Blob([typedArray.buffer], {type: mimeType}))
}
const bytes = Uint8Array.from("https://www.baidu.com/")
// const url = typedArrayToURL(bytes, 'text/html');
const url = typedArrayToURL(bytes, 'text/plain; charset=utf-8');

let blob = await (await fetch(url)).blob();
console.info(new Uint8Array(blob))

let ab = await (await fetch(url)).arrayBuffer();
console.info(new Uint8Array(ab))

blob 或 ab 22 的大小等于 的长度"https://www.baidu.com/",但其中的数据全为零。

4

1 回答 1

1

AnintArray需要整数。因此,您必须以正确的格式提供数据。

所以像

const bytes = Uint8Array.from("https://www.baidu.com/".split('').map(v=>v.charCodeAt(0)));

或者

const encoder = new TextEncoder();
const bytes = Uint8Array.from(encoder.encode("https://www.baidu.com/"))
于 2021-12-22T07:51:50.027 回答