实现文件下载的方式

1.a标签

<!-- 最简单的下载方式,浏览器默认打开pdf和txt等文件,其他文件是下载 -->
<!-- target决定了下载和打开是在当前页还是新建一个标签页 -->
<a href="http://aaa/ceshi.pdf" target="_blank">下载</a>

 

2.相同域名的情况下(如果遇到跨域的情况,最好还是让后端的人开发下载接口

function download(url, filename) {
    function createObjectURL(object) {
        return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
    }
    var xhr = new XMLHttpRequest();
    xhr.open("get", url, true)
    xhr.onload = function(e){
        if(this.status == 200) {
            var blob = this.response;
            if(window.navigator.msSaveOrOpenBlob) {
                navigator.msSaveBlob(blob, filename);
            } else {
                const element = document.createElement("a");
                element.href = URL.createObjectURL(blob);
                element.download = filename;
                document.body.appendChild(element);
                element.click();
                URL.revokeObjectURL(element.href);
                document.body.removeChild(element);
            }
        }
    }
    xhr.send();
}

3. 另外的方式及需要注意的地方

URL.createObjectURL和URL.revokeObjectURL:https://www.cnblogs.com/liulangmao/p/4262565.html

posted @ 2020-09-22 18:42  姑苏城外小白  阅读(170)  评论(0编辑  收藏  举报