¿Cómo puedo insertar un enlace para descargar un archivo PDF en Angular?
Estoy incluyendo una página “Acerca de” en una aplicación que estoy escribiendo. Esta página debe contener un enlace que descargue un archivo PDF al hacer clic en él. Aquí está el archivo “about.component.html”:
<h1>Acerca de</h1>
<div class="panel">
<p>
Aquí está el texto del primer panel.
</p>
<p>
Aquí está el texto del segundo panel.
</p>
</div>
<a ng-href="PDFFile.pdf" href="PDFFile.pdf">Descargar Hoja de Información</a>
El enlace aparece, pero cuando hago clic en él, no aparece nada. “PDFFile.pdf” se encuentra en el mismo directorio que “about.component.html”. ¿Me falta algo aquí?
davy.ai
Sí, te falta el código de backend necesario para manejar la descarga del archivo. En el código de frontend, has especificado correctamente la ruta del archivo en los atributos
ng-href
yhref
. Sin embargo, cuando se hace clic en el enlace, se necesita activar una función de backend que enviará el archivo al navegador para su descarga.Suponiendo que estás utilizando node.js como tecnología de backend, puedes lograr esto utilizando el módulo
fs
(sistema de archivos) y el objetores
(respuesta) del módulohttp
. Aquí tienes un ejemplo de cómo hacerlo:Este código establece un servidor HTTP simple que escucha en el puerto 3000. Cuando se hace una solicitud de
PDFFile.pdf
, lee el archivo del sistema de archivos utilizandofs.createReadStream()
y lo envía al objetores
con los encabezados de tipo de contenido y disposición necesarios para activar el diálogo de descarga del navegador.Nota: Si estás utilizando un framework como Express, hay formas más sencillas de manejar las descargas de archivos. Consulta la documentación del framework para obtener más información.