Servidor:
return res.download(filepath);Cliente:
function provideDownload(filename, data) { const linkElement = document.createElement('a'); linkElement.setAttribute('href', data); linkElement.setAttribute('download', filename); document.body.appendChild(linkElement); linkElement.click(); linkElement.remove(); } function provideBlobDownload(filename, data) { provideDownload( filename, window.URL.createObjectURL(new Blob([data])) ); } axios.post('/export', { entity, fileformat, locale: props.locale, }).then((res) => { provideBlobDownload(filename, res.data); });Problema:
No se puede abrir el archivo xlsx descargado. Mensaje: Es posible que el archivo esté dañado.
La respuesta de la API en la consola del navegador se ve así:
UEsDBAoAAAAAAPC1eVTWknwRWgEAAFoBAAARAAAAZG9jU....Ya he leído publicaciones relacionadas, incluida esta Cómo guardar datos .xlsx en un archivo como un blob , pero no pude resolverlo.
Me gustaría resolverlo sin usar un paquete adicional como exceljs
intente agregar responseType:'blob' para solicitar la opción de configuración:
axios.post('/export', { entity, fileformat, locale: props.locale }, { responseType: 'blob' }) .then((res) => { provideBlobDownload(filename, res.data); });