这是下载的方法
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(() => {
})