Recibo la URL del archivo como respuesta de la API. cuando el usuario hace clic en el botón de descarga, el archivo debe descargarse sin abrir la vista previa del archivo en una nueva pestaña. ¿Cómo lograr esto en reaccionar js?
Esto no está relacionado con React. Sin embargo, puede usar el atributo de download en el elemento ancla <a> para decirle al navegador que descargue el archivo.
<a href='/somefile.txt' download>Click to download</a>Esto no es compatible con todos los navegadores: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
Si está utilizando React Router, use esto:
<Link to="/files/myfile.pdf" target="_blank" download>Download</Link> Donde /files/myfile.pdf está dentro de su carpeta public .
Activar la descarga del navegador desde la interfaz no es confiable.
Lo que debe hacer es crear un punto final en un servidor que, cuando se le llame, responda con los encabezados de respuesta correctos, lo que activará la descarga del navegador.
El código frontend solo puede hacer mucho. El atributo 'descargar', por ejemplo, podría abrir el archivo en una nueva pestaña según el navegador y el tipo de archivo.
Los encabezados de respuesta que debe mirar son Content-Type y Content-Disposition . Debe verificar esta respuesta para obtener una explicación más detallada sobre esos encabezados.