美文网首页
js接受后端流数据

js接受后端流数据

作者: yujiawei007 | 来源:发表于2022-08-09 15:22 被阅读0次

这是下载的方法

export function getDown(obj) {
 5   return request({
 6     url: "接口",
 7     method: "get",
 8     params: obj,
 9     responseType: "arraybuffer",          //设置请求的方式,后台返回数据流,就要设置 arraybuffer,也可以设置'blob'。
10   }).then(({ data }) => {
11     // 处理返回的文件流(data  是后台返回的数据流) new Blob  里面,type 是要下载的各类文件类型
12     let blob = new Blob([data], { type: "application/vnd.ms-excel" });
13     let objectUrl = (window.URL || window.webkitURL).createObjectURL(blob);
14     let downFile = document.createElement("a");
15     let fileName = "设置下载出来的文件名.xls";       
16     downFile.style.display = "none";
17     downFile.href = objectUrl;
18     downFile.download = fileName;          // 下载后文件名,这个不能少,否则浏览器会跳转
19     document.body.appendChild(downFile);
20     downFile.click();
21     document.body.removeChild(downFile);   // 下载完成移除元素
22     // window.location.href = objectUrl
23     window.URL.revokeObjectURL(objectUrl); // 只要映射存在,Blob就不能进行垃圾回收,因此一旦不再需要引用,就必须小心撤销URL,释放掉blob对象。
24   });
25 }    

这是直接预览视频的方法

// responseType: "blob", responseType需要设置为blob
 downloadFile('1550447003673653249')
        .then((res) => {
          console.log(res, 'res')
          const blob = new Blob([res], { type: 'video/mp4' })
          const url = window.URL.createObjectURL(blob)
          // const downFile = document.createElement('a')
          // downFile.style.display = 'none'
          // downFile.href = url
          // downFile.download = 'xxx.mp4'
          // document.body.appendChild(downFile)
          // downFile.click()
          // document.body.removeChild(downFile)
          // window.URL.revokeObjectURL(url)
          this.czVideoUrl = url //直接给video src播放
        })
        .catch((err) => {
          this.AE.Utils.displayMessage.error(err, 2)
        })
        .finally(() => {
        })

相关文章

网友评论

      本文标题:js接受后端流数据

      本文链接:https://www.haomeiwen.com/subject/wulawrtx.html