下载ArrayBuffer中的数据到本地

    技术2024-12-13  13

    下载ArrayBuffer中的数据到本地。

    1、 首先确保你想下载的对象类型属于 [object ArrayBuffer]、或者类型化数组 [object UintXArray]、[object intXArray]。

    可以使用以下代码查看buff对象类型

    console.log(Object.prototype.toString.call (buff) );

    buff为要检验的对象

    2、 编写下载代码,如下: 参数buff为你想下载的ArrayBuffer。

    function download(buff){ let url = window.URL.createObjectURL(new Blob( [buff], {type: "arraybuffer"}) ) const link = document.createElement('a'); link.style.display = 'none'; link.href = url; link.setAttribute('download', 'out.mp4'); document.body.appendChild(link); link.click(); document.body.removeChild(link); }

    解释: 通过window.URL.createObjectURL()为对象创建资源链接URL。 但该函数参数 仅为 File 对象、Blob 对象或者 MediaSource 对象。​

    因此,你需要将 ArrayBuffer转换。 new Blob( [buff], {type: “arraybuffer”}) 具体介绍请看Blob

    Blob() 构造函数返回一个新的 Blob 对象。 blob的内容由参数数组中给出的值的串联组成。 参数[buff]为要转化的对象,type表明了buff的类型。

    const link = document.createElement('a'); link.style.display = 'none'; link.href = url; link.setAttribute('download', 'out.mp4'); document.body.appendChild(link); link.click(); document.body.removeChild(link);

    上面这一段就是很经典的创建隐藏标签和点击事件,下载URL的代码,因此不再讲解。

    Processed: 0.015, SQL: 9