Neste artigo você vai aprender a como fazer download de arquivo no Angular, vem conferir como é fácil baixar arquivos com Angular!

Fala programador(a), beleza? Bora aprender mais sobre download de arquivos no framework Angular!
Introdução:
Ao trabalhar com aplicativos da web, você pode se deparar com a necessidade de permitir que os usuários baixem arquivos, como documentos ou imagens.
Neste artigo, você aprenderá a implementar o download de arquivo no Angular, uma das frameworks mais populares para desenvolvimento web.
Vamos explorar como criar um serviço e um componente que possibilitem o download de arquivos de diferentes tipos.
Crie um serviço para lidar com o download de arquivo
Para começar, vamos criar um serviço Angular que será responsável por lidar com o processo de download de arquivo no Angular.
Utilize o Angular CLI para gerar um novo serviço:
ng generate service download
Agora, abra o arquivo download.service.ts e adicione o seguinte código:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { saveAs } from 'file-saver';
@Injectable({
providedIn: 'root'
})
export class DownloadService {
constructor(private httpClient: HttpClient) { }
downloadFile(url: string, fileName: string): void {
this.httpClient.get(url, { responseType: 'blob' }).subscribe((data) => {
saveAs(data, fileName);
});
}
}
Neste serviço, estamos importando o HttpClient e o módulo saveAs da biblioteca file-saver.
A função downloadFile recebe a URL do arquivo e o nome do arquivo como parâmetros.
A opção responseType: 'blob' é usada para obter o arquivo como um Blob.
Em seguida, a função saveAs da biblioteca file-saver é usada para salvar o arquivo no dispositivo do usuário.
Crie um componente para download de arquivo
Agora que temos um serviço para lidar com o download de arquivo no Angular, vamos criar um componente para acionar o download.
Use o Angular CLI para gerar um novo componente:
ng generate component download-button
Abra o arquivo download-button.component.ts e adicione o seguinte código:
import { Component, Input } from '@angular/core';
import { DownloadService } from '../download.service';
@Component({
selector: 'app-download-button',
templateUrl: './download-button.component.html',
styleUrls: ['./download-button.component.css']
})
export class DownloadButtonComponent {
@Input() fileUrl: string;
@Input() fileName: string;
constructor(private downloadService: DownloadService) { }
download(): void {
this.downloadService.downloadFile(this.fileUrl, this.fileName);
}
}
Neste componente, estamos usando o Input para receber a URL do arquivo e o nome do arquivo como propriedades do componente.
A função download é chamada quando o usuário clica no botão de download e aciona a função downloadFile do serviço DownloadService.
Abra o arquivo download-button.component.html e adicione o seguinte código:
<button (click)="download()">Download</button>
Utilize o componente no seu aplicativo
Por fim, para usar o componente de download de arquivo no Angular em seu aplicativo, adicione a tag do componente no arquivo HTML onde você deseja que o botão de download apareça.
Por exemplo, no arquivo app.component.html:
<app-download-button [fileUrl]="fileUrl" [fileName]="fileName"></app-download-button
Instale a biblioteca ‘file-saver’
Como mencionado anteriormente, estamos usando a biblioteca file-saver para ajudar a salvar o arquivo no dispositivo do usuário.
Para instalar a biblioteca, execute o seguinte comando:
npm install file-saver
Se você estiver usando o TypeScript, instale também os tipos para a biblioteca file-saver:
npm install @types/file-saver
Atualize o AppModule
Para utilizar o HttpClient e o serviço de download de arquivo no Angular, é necessário importar o HttpClientModule no AppModule.
Abra o arquivo app.module.ts e atualize-o da seguinte maneira:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app.component';
import { DownloadButtonComponent } from './download-button/download-button.component';
import { DownloadService } from './download.service';
@NgModule({
declarations: [
AppComponent,
DownloadButtonComponent
],
imports: [
BrowserModule,
HttpClientModule
],
providers: [DownloadService],
bootstrap: [AppComponent]
})
export class AppModule { }
Teste o download de arquivo no Angular
Agora você pode testar o download de arquivo no Angular. Abra o arquivo app.component.ts e adicione uma URL de arquivo e um nome de arquivo para teste:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
fileUrl = 'https://example.com/path/to/your/file.pdf';
fileName = 'example-file.pdf';
}
Substitua a URL do arquivo e o nome do arquivo pelos valores desejados e inicie o aplicativo Angular para ver o botão de download em ação.
Quer aprender mais sobre React? Confira o vídeo abaixo:
Conclusão
Neste artigo, aprendemos como implementar o download de arquivo no Angular, criando um serviço e um componente para gerenciar o processo.
Utilizamos a biblioteca file-saver para salvar arquivos no dispositivo do usuário.
Agora você pode adaptar e personalizar esse exemplo para atender às necessidades específicas do seu projeto.
Está buscando em evoluir como Programador? Confira o nossos cursos clicando aqui.
Nosso principal objetivo é tornar você um dev profissional que é capaz de resolver problemas de alta dificuldade e criar projetos complexos, através de uma metodologia planejada nos mínimos detalhes, após formar muitos outros desenvolvedores.
Cursos com vários projetos, exercícios, material apoio, comunidade de alunos e muito mais!