美文网首页
js 下载后端返回的文件、图片 (二),兼容ie下载的方式

js 下载后端返回的文件、图片 (二),兼容ie下载的方式

作者: 不负好时光_9c46 | 来源:发表于2021-04-15 10:39 被阅读0次

    前端采用的是XMLHttpRequest下载,之前写过一篇关于XMLHttpRequest下载的文章,但是后面在测试兼容性的时候发现之前的写法不兼容ie9。

    // 下载二维码

    function downloadPic() {

       // 对文件重命名

        var excelName = '文件名'

        var xmlHttp = new XMLHttpRequest();

        var url = '请求的链接';

        xmlHttp.open('get', url, true);

        xmlHttp.responseType = "blob";

        xmlHttp.onload = function () {

            if (this.status == 200) {

                var blob = this.response;

                var href = window.URL.createObjectURL(blob); //创建下载的链接

                //判断是否是IE浏览器,是的话返回true

                if (window.navigator.msSaveBlob) {

                    try {

                        window.navigator.msSaveBlob(blob, excelName + '.png');

                    } catch (e) {

                        console.log(e);

                    }

                } else {

                    // 谷歌浏览器 创建a标签 添加download属性下载

                    var downloadElement = document.createElement('a');

                    downloadElement.href = href;

                    downloadElement.target = '_blank';

                    downloadElement.download = excelName + '.png'; //下载二维码图片

                    document.body.appendChild(downloadElement);

                    downloadElement.click(); //点击下载

                    document.body.removeChild(downloadElement); //下载完成移除元素

                    window.URL.revokeObjectURL(href); //释放掉blob对象

                }

            }

        }

        xmlHttp.send();

    }

    后端返回的是File文件:

    相关文章

      网友评论

          本文标题:js 下载后端返回的文件、图片 (二),兼容ie下载的方式

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