如何以角度2

时间:2017-08-23 11:51:37

标签: angular

这是以角度2下载文件的代码。我想用此代码下载pdf,txt,docx,excel文件。我使用了文件保护程序,所以我们可以点击按钮下载不同的文件。

public downloadCSVFile()
   {
      this.downloadPdf().subscribe(
      (res) => 
         { 
            //console.log(res);   
            saveAs(res,'Frontend.xlsx')
         }
      );
   }

   public downloadPdf(): any 
   {
      let urls='assets/Files/Frontend.xlsx'
      let headers = new Headers();
      //headers.append('Authorization', 'JWT ' + localStorage.getItem('id_token'));
      return this.http.get(urls, { headers: headers,responseType: ResponseContentType.Blob }).map(
         (res) => {
            return new Blob([res.blob()], { type: 'application/vnd.ms-excel' })
         })
   }

这是我的html代码所以如何下载不同的文件。由于文件名显示在表格中,所以我希望下载相应的文件。

<tr *ngFor ="let mydrive of providerMyDrive">
         <td>{{ mydrive.name }}</td>
         <td>{{ mydrive.filetype }}</td>
         <td>{{ mydrive.size }}</td>
         <td>{{ mydrive.uploaddate }}</td>
         <td><input type="button" (click)="downloadCSVFile()" value="Download"></td>
         <td></td>
      </tr>

1 个答案:

答案 0 :(得分:0)

只需创建一个链接并单击它:

this.storageService.downloadFile(path).subscribe(
      res => {
        let link = document.createElement('a');
        link.href = window.URL.createObjectURL(res.blob());
        link.download = path;

        link.click();
      }, error => this.globalService.errorSubject.next(error)
    );