File download through Angular 2

前端 未结 2 539
盖世英雄少女心
盖世英雄少女心 2021-02-14 04:57

I have a backend that I set up to return a file through setting the header

Content-Disposition: attachment;filename=somefile.csv

It works direc

2条回答
  •  醉话见心
    2021-02-14 05:41

    i have implemented it like this.

    i have a service requesting file download. The response return a url, which is on amazon s3. This is a zip file containing what i want to download.

    the below works on all browsers.

    in your controller

    requestDownload() {
    
    this.downloadservice.downloadImages(obj)
          .subscribe(
            response => this.download(response )
          );
    
    }
    
    // res is an object
    download(res){ 
        var link = document.createElement("a");
        link.download = "a";
        link.href = res.link;
        document.body.appendChild(link);
        link.click();
    
         }
    

    downloadservice file

    downloadImages(body): Observable{
    
            let headers = new Headers({ 'Content-Type': 'application/json' });
            let options = new RequestOptions({ headers: headers });
            return this.http.post("/Camera51Server/getZippedImages", body, options)
                .map((res:Response) => res.json())
                .catch(this.handleError);
        }
    

    if you like i can give you a link to the repository.

提交回复
热议问题