web前端:文件下载

余生长醉 提交于 2020-02-05 04:29:31

在这里插入图片描述

// 返回二进制
var xhr = new XMLHttpRequest();
xhr.open(
    "GET",
    `${url}/web/showWordDownload?companyId=${that.companyId}`,
    true
);
xhr.responseType = "blob";
xhr.onload = function(e) {
     let content = xhr.response;
     let blob = new Blob([content], { type: "application/pdf" });
     let explorer = window.navigator.userAgent;
     if (explorer.indexOf("Trident") < 0) {
            let a = document.createElement("a");
             a.download = "工控系统安全加固建议报告.docx";
             a.style.display = "none";
             a.href = URL.createObjectURL(blob);
             document.body.appendChild(a);
             a.click();
             window.URL.revokeObjectURL(a.href);
             document.body.removeChild(a);
     } else {
            var blobObject = new Blob([content], 
            		{type: "application/pdf" });
            navigator.msSaveBlob(
                  blobObject,
                  "工控系统安全加固建议报告.docx"
                );
      }
};
xhr.send();

Blob对象:

存放二进制数据的容器。处理二进制数据。
创建:

var blob = new Blob(dataArray, opt: { type: string});
// dataArray:数组,数据可以是任意多个ArrayBuffer,
//ArrayBufferView, Blob,或者 DOMString对象。

应用场景:

1、通过URL链接下载文件。demo如下:

function downFile () {
	let content = 'test test, 测试2019-11-11!!!';
    let blob = new Blob([content]);
    let url = URL.createObjectURL(blob);// 下载链接
    
    let a = document.createElement('a');
    document.body.appendChild(a)
    a.innerHTML = '点击下载';
    a.download = 'test.docx';
    a.href = url;
}

downFile();
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!