欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

SCRIPT5: 拒绝访问。Excel文件在IE下导不出来

程序员文章站 2022-04-12 22:09:13
文件在IE下导不出来原来是由于在IE中不支持手动调用click()方法,所以在下载Excel文件的时候增加判断:if (navigator.msSaveOrOpenBlob) {//允许用户在客户端上保存文件,IE //IE浏览器 navigator.msSaveOrOpenBlob(blobData,fileName);//blobData为下载文件流,fileName为下载文件名 } else { //其他浏览器 let url = window.URL.cre...

文件在IE下导不出来
SCRIPT5: 拒绝访问。Excel文件在IE下导不出来原来是由于在IE中不支持手动调用click()方法,所以在下载Excel文件的时候增加判断:

if (navigator.msSaveOrOpenBlob) {//允许用户在客户端上保存文件,IE
 	 //IE浏览器
     navigator.msSaveOrOpenBlob(blobData,fileName);//blobData为下载文件流,fileName为下载文件名
 } else {
     //其他浏览器
     let url = window.URL.createObjectURL(blobData);
     console.log('url',url);
     let link = document.createElement('a');
     link.style.display = 'none';
     link.href = url;
     link.setAttribute('download', fileName);
     document.body.appendChild(link);
     link.click();//IE下不支持该方法
     document.body.removeChild(link);
 }

完整Excel文件下载方法如下:

handleDownload(){
    let fileName='222';
    //fileName=encodeURIComponent(fileName);
    console.log(fileName);
    //导出
    if(this.ID){
      this.toDownload(this.uploadUrl,this.ID,fileName+'.xlsx')
    }else{
        this.$message.error('没有数据,无法导出!');
    }
},
toDownload(url, data, fileName) {
    return new Promise((resolve, reject) => {
        axios({
            method: "get",
            url: url,//请求后端接口url
            params:{ChlinicalID:data},
            responseType: 'blob'
        })
        .then(res => {
            let reader = new FileReader();
            let data = res.data;
            console.log(res);
            reader.onload = e => {
                if (e.target.result.indexOf('Result') != -1 && JSON.parse(e.target.result).Result == false) {
                    // 进行错误处理
                } else {
                    if (!fileName) {
                        let contentDisposition = res.headers['content-disposition'];
                        if (contentDisposition) {
                            fileName = window.decodeURI(res.headers['content-disposition'].split('=')[2].split("''")[1], "UTF-8");
                        }
                    }
                    this.executeDownload(data, fileName);
                }
            };
            reader.readAsText(data);
            resolve(res.data);
        })
    });
},
 //  模拟点击a 标签进行下载
executeDownload(data, fileName) {
  if (!data) {
         return
     }
     var blobData=new Blob([data]);
     if (navigator.msSaveOrOpenBlob) {//允许用户在客户端上保存文件,IE
         //IE浏览器
         navigator.msSaveOrOpenBlob(blobData,fileName);
     } else {
         //其他浏览器
         let url = window.URL.createObjectURL(blobData);
         console.log('url',url);
         let link = document.createElement('a');
         link.style.display = 'none';
         link.href = url;
         link.setAttribute('download', fileName);
         document.body.appendChild(link);
         link.click();//IE下不支持该方法
         document.body.removeChild(link);
     }
 },

本文地址:https://blog.csdn.net/Mayflyingdancing/article/details/108725142