angular - 如何使用 Angular 5 下载文件?

标签 angular html typescript angular5

当我在浏览器中粘贴 my_example_link 时,文件会以正确的方式自动下载。但是,当我使用下面显示的源代码时,下载不起作用。我想在点击 download 按钮后下载文件。任何想法出了什么问题?我没有收到任何错误。

用户服务.ts:

DownloadFiles() {

    return this.http.get('my_example_link', {responseType: 'text'});

}

uploader .service.ts:

DownloadFile(){

      this.userService.DownloadFiles()
          .subscribe(
              (data) => this.downloadFile2(data)), // console.log(data),
              (error) => console.log("Error downloading the file."),
              () => console.info("OK");
}

downloadFile2(data: Response){
  var blob = new Blob([data], { type: 'text/csv' });
  var url= window.URL.createObjectURL(blob);
  window.open(url);
}

something.component.html:

<li class="nav-item" *ngIf="isCloud()">
    <a  (click)="this.UploaderService.DownloadFile()" download="file23.txt" style='cursor: pointer;' class="nav-link" target="_blank">
        <i class="nc-icon nc-basket"></i> Download
    </a>
</li>

最佳答案

使用arraybuffer

this.httpClient.get(url, {responseType: 'arraybuffer',headers:headers});

保存文件:

 npm install file-saver --save

 import { saveAs } from 'file-saver/FileSaver';

组件:

downLoadFile(data: any, type: string) {
        var blob = new Blob([data], { type: type.toString() });
        var url = window.URL.createObjectURL(blob);
        saveAs(blob,"file_name.txt");
        window.open(url);

    }

关于angular - 如何使用 Angular 5 下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51952190/

相关文章:

angular - 如何通过单击具有 RouterLink 指令的元素来关闭 Material SideNav?

javascript - 安装模块,无需原始 npm 安装

css - 无需编译即可打包 Angular 元素

html - PhpStorm - CSS 文件链接到服务器的根目录而不是元素根目录

javascript - 使用装饰器扩展原型(prototype)

javascript - Angular 发布项目网络错误

html - 按钮未内嵌在较小的设备上

html - 固定滚动按钮问题

javascript - 服务器调用后更新状态?

TypeScript 在设置属性后错误地假设它的值