在前端,如果直接将 Uint8Array 类型的数据作为文件下载,可能会导致文件解析失败。这是因为浏览器无法自动识别文件类型,需要手动指定文件类型才能正确解析文件。

为了解决这个问题,可以在前端使用 Blob 对象将 Uint8Array 类型的数据转换为二进制数据,并指定文件类型,然后使用 URL.createObjectURL() 方法创建一个 URL,将 URL 赋值给 a 标签的 href 属性,最后使用 a.click() 方法模拟点击 a 标签,触发文件下载。以下是一个示例,演示如何将 Uint8Array 类型的数据以文件形式下载:

const data = new Uint8Array([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64]);

const blob = new Blob([data], { type: 'application/octet-stream' });

const url = URL.createObjectURL(blob);

const a = document.createElement('a');
a.href = url;
a.download = 'file.bin';
a.click();
最后修改:2023 年 04 月 11 日 07 : 11 PM
如果觉得我的文章对你有用,请随意赞赏