vue 兼容ie 下载文件

 handlePreview(file) {
      getFile(file.id)
        .then(res => {
          const blob = new Blob([res]);
          if (window.navigator.msSaveOrOpenBlob) {
            // 兼容IE
            navigator.msSaveBlob(blob, file.name);
          } else {
            var a = document.createElement("a");
            var event = new MouseEvent("click");
            a.download = file.name;
            a.href = window.URL.createObjectURL(blob);

            a.dispatchEvent(event);
          }
        })
        .catch(err => {
          console.log("err", err);
        });
    }
import request from '@/utils/request'

// 请求的返回类型需要为blob否则导出会有问题
export function exportFun1() {
    return request({
        url: '/asset/exportLease',
        responseType: "blob",
        method: 'get'
    })
}
方法二
export function downloadFile(obj, name, suffix) {
//obj是后端返回的流
//name是导出文件的名字
//suffix是文件后缀
if (window.navigator.msSaveOrOpenBlob) { // 兼容IE const blob = new Blob([obj]); const fileName = parseTime(new Date()) + '-' + name + '.' + suffix navigator.msSaveBlob(blob, fileName); } else { const url = window.URL.createObjectURL(new Blob([obj])) const element = document.createElement('a') element.style.display = 'none' element.href = url const fileName = parseTime(new Date()) + '-' + name + '.' + suffix element.setAttribute('download', fileName) document.body.appendChild(element) element.click() document.body.removeChild(element) } }
原文地址:https://www.cnblogs.com/lovetl/p/12738165.html