Siempre he tenido problemas descargando archivos desde un S3, o cualquier otra fuente de archivos, porque Chrome los descarga directamente y Firefox los abre en una nueva ventana y es un problema manipularlos. Lo que suelo hacer es:
- Desde el backend, enviar un buffer de datos al front-end en el endpoint.
- Hacemos un fetch para obtener el buffer del PDF:
getPDF(): Promise<any> {
return fetch(`url/to/pdf`,
{ method: 'GET', }
);
}
- Cuando se resuelve la promesa, convertimos el buffer en un objeto Blob y creamos una URL temporal con
URL.createObjectURL()para finalmente abrirla en una nueva pestala conwindow.
openPDF(): void {
this.getPDF()
.then(response => response.blob())
.then(pdf => {
if (pdf) {
window.open(URL.createObjectURL(pdf), '_blank');
}
})
.catch(err => {
console.log(err);
});
}
Curso de Consumo de APIs REST con Angular
COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE
0 Comentarios
para escribir tu comentario




