• vue 兼容ie 下载图片


    export function downLoad(_url, _method, _data,_newFileName) {
      let baseURL = window.location.protocol + '//' + window.location.host + process.env.VUE_APP_BASE_API;
      function createObjectURL(object) {
        return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
      }
    
      let xhr = new XMLHttpRequest()
      let url = baseURL + _url;
      if (url.indexOf("?") == -1) {
        url = url + "?nowtimes=" + new Date().getTime();
      } else {
        url = url + "&nowtimes=" + new Date().getTime();
      }
      xhr.open(_method, url)
      xhr.setRequestHeader('Authorization', getToken())
      xhr.responseType = 'blob'
      let formData = new FormData();
      if (_method == 'post') {
        formData = {};
        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8')
        for (let key in _data) {
          formData[key] = _data[key];
        }
        formData = JSON.stringify(formData);
      }
      xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
          //取出下载文件名
          let fileName = decodeURI(xhr.getResponseHeader('content-disposition').split(';')[1].split('=')[1]);
          if (_newFileName) {
            let fileSuffix = fileName.substring(fileName.lastIndexOf('.'));
            fileName = _newFileName + fileSuffix
          }
          
          if(!!window.ActiveXObject || "ActiveXObject" in window){
            console.log('ie浏览器')
            var data = xhr.response;
            var blob = new Blob([data], { type: "application/vnd.ms-excel" });
            window.navigator.msSaveOrOpenBlob(blob, fileName);
          }else{
            console.log('非ie浏览器')
            const blob = new Blob([xhr.response])
            let url = window.URL.createObjectURL(blob)
            //创建一个a标签元素,设置下载属性,点击下载,最后移除该元素
            let link = document.createElement('a')
            link.href = url
            link.style.display = 'none'
            link.setAttribute('download', fileName)
            link.click()
            window.URL.revokeObjectURL(url)
          }
        }
      }
      xhr.send(formData);
    }
  • 相关阅读:
    springboot 环境搭建
    Maven工程下构建ssh项目配置
    java动态代理
    java 代理
    java反射
    Java缓存流
    java 输出流
    Java输入数据流
    使用微软 AppFabric 遇到问题
    百度文本编辑器 Ueditor for net 使用七牛存储附件的实现
  • 原文地址:https://www.cnblogs.com/dandanyajin/p/16371224.html
Copyright © 2020-2023  润新知