Skip to content Skip to sidebar Skip to footer

File Download Through Angular 2

I have a backend that I set up to return a file through setting the header Content-Disposition: attachment;filename=somefile.csv It works directly in the browser and downloads the

Solution 1:

I had a similar issue when i was trying to download a PDF file which my Node server was sending. I was making a GET request on my server with some id details. This is what worked for me.

Function Calling my service

printBill(receiptID) {
this.BillingService.printBill(receiptID)
    .subscribe(res => {
        saveAs(res,"InvoiceNo"+receiptID+".pdf");
        let fileURL = URL.createObjectURL(res);
        window.open(fileURL);
    })
}

Service

printBill(billID) {
    returnthis.http.get('/billing/receipt/'+billID, 
                   { responseType: ResponseContentType.Blob })
      .map((res) => {
            returnnewBlob([res.blob()], { type: 'application/pdf' })
        })
}

And dont forget to import ResponseContentType

Hope this helps you

Solution 2:

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 objectdownload(res){ 
    var link = document.createElement("a");
    link.download = "a";
    link.href = res.link;
    document.body.appendChild(link);
    link.click();

     }

downloadservice file

downloadImages(body): Observable<any>{

        let headers = newHeaders({ 'Content-Type': 'application/json' });
        let options = newRequestOptions({ headers: headers });
        returnthis.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.

Post a Comment for "File Download Through Angular 2"