在Antd-Pro下實現文件下載

後端採用二進制流返回文件而不是常見的返回網絡URLajax

在antd-pro環境下後端

發送ajax請求時須要配置爲瀏覽器

config = {
        headers : {
          token : tokenHandler.getSessionByKey('token'),
        },
        responseType : 'blob',
      };

獲取到數據以後,在對應modal中用異步實現下載網絡

* saveFile({ payload: {blob, fileName}}, { call }) {
      if (window.navigator.msSaveOrOpenBlob) {
        navigator.msSaveBlob(blob, fileName);
      } else {
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        link.download = fileName;
        //此寫法兼容可火狐瀏覽器
        document.body.appendChild(link);
        var evt = document.createEvent("MouseEvents");
        evt.initEvent("click", false, false);
        link.dispatchEvent(evt);
        document.body.removeChild(link);
      }
    },
相關文章
相關標籤/搜索