美文网首页
angular ajax 下载流文件

angular ajax 下载流文件

作者: 简陌刀丶阿吉 | 来源:发表于2019-07-24 18:42 被阅读0次
/**
   * 导出全周期模版
   * @param paramMap proNo:项目编码,projectCycleVersion:项目周期版本
   * @param successFunc 成功消息回调函数
   * @param errorFunc 失败消息回调函数
   */
exportModal(paramMap) {
    // responseType: 'blob' 获取了文件的二进制流
    this.http.post('api/s01cross/b04/exportmonfinana', paramMap,
      {responseType: 'blob', observe: 'response'}).subscribe(data => {
      const link = document.createElement('a');
      const blob = new Blob([data.body], {type: 'application/vnd.ms-excel'});
      let fileName = data.headers.get('Content-Disposition').split(';')[1].split('filename=')[1];
      const fileNameUnicode = data.headers.get('Content-Disposition').split('filename*=')[1];
      // 当存在 filename* 时,取filename* 并进行解码(为了解决中文乱码问题)
      if (fileNameUnicode) {
        fileName = decodeURIComponent(fileNameUnicode.split('\'\'')[1]);
      }
      link.setAttribute('href', window.URL.createObjectURL(blob));
      link.setAttribute('download', fileName);
      link.style.visibility = 'hidden';
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
    });
  }

相关文章

网友评论

      本文标题:angular ajax 下载流文件

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