Angular实现发送请求下载文件

Angular实现下载文件到本地

第一步:获取下载地址

//获取下载地址
download() {
      let param = {
        "**" : "**", //参数 json形式
        "**" : "**",
      } ;
    this.download(param).subscribe((res: any) => { 
      
      if (res.success) {
        let target = res.message;  //下载地址
        this.downloadFile(target);  //调用下载方法
      }
     
    })
  }

第二步: 调用下载方法

//下载方法
downloadFile(target) {
    return this.http
      .get(`${#URL}?recordid=${target}`, {         //#URL表示下载的URL地址
        responseType: 'blob',
        observe: 'response'
      })
      .subscribe(data => {
        const link = document.createElement('a');
        const blob = new Blob([data.body], { type: 'application/zip' });
        link.setAttribute('href', window.URL.createObjectURL(blob));
        link.setAttribute('download', data.headers.get('Content-disposition').split('filename=')[1]);
        link.style.visibility = 'hidden';
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
      });

备注: download方法

download(param) {
    return this.http.post(`${#URL}`, null, {    //#URL 表示URL地址
      params: param,
    });
  }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Angular中进行网络请求有多种方式,最常用的是使用Angular的HttpClient模块。 首先,确保你的项目已经引入了`@angular/common/http`模块。然后,在你的组件或服务中引入HttpClient模块: ```typescript import { HttpClient } from '@angular/common/http'; ``` 接下来,你可以在构造函数中注入HttpClient服务: ```typescript constructor(private http: HttpClient) { } ``` 现在,你可以在你的组件或服务中使用HttpClient来发送请求。以下是一些常见的示例: 1. 发送GET请求并获取响应数据: ```typescript this.http.get('https://api.example.com/data').subscribe( data => { console.log(data); // 处理响应数据 }, error => { console.error(error); // 处理错误 } ); ``` 2. 发送POST请求并传递数据: ```typescript const data = { name: 'John', age: 25 }; this.http.post('https://api.example.com/user', data).subscribe( response => { console.log(response); // 处理响应数据 }, error => { console.error(error); // 处理错误 } ); ``` 3. 发送PUT请求更新数据: ```typescript const data = { name: 'John', age: 30 }; this.http.put('https://api.example.com/user/123', data).subscribe( response => { console.log(response); // 处理响应数据 }, error => { console.error(error); // 处理错误 } ); ``` 以上示例只是一些常见的用法,HttpClient还提供了其他的方法和功能,比如处理请求头、设置请求参数、处理响应拦截等。你可以参考Angular官方文档来深入了解更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值