Estoy leyendo los datos de una API y descargando un file . Quiero guardar el mismo file en la carpeta public de la aplicación de react .
this.state = { fileDownloadUrl: null, fileName: '', };a continuación se muestra el método.
downLoadFile(e) { e.preventDefault(); axios .get( 'http://localhost:8080/file_download/en' ) .then((res) => { var output = res.data; const blob = new Blob([output]); const fileDownloadUrl = URL.createObjectURL(blob); this.setState({ fileDownloadUrl: fileDownloadUrl }, () => { this.dofileDownload.click(); URL.revokeObjectURL(fileDownloadUrl); this.setState({ fileDownloadUrl: '' }); }); }); }código para descargar el archivo.
<a className="hidden" download={this.state.fileName + '.json'} href={this.state.fileDownloadUrl} ref={(e) => (this.dofileDownload = e)} > download it </a> De todos modos, puedo modificar el code para que file se pueda guardar en la carpeta public de la aplicación de react . más tarde, este archivo se utilizará para la traducción.
No es posible porque esto representa un riesgo de seguridad.
La mayoría de los sistemas operativos tendrán por defecto la descarga en la carpeta de descarga.
El navegador JavaScript puro no puede obtener información sobre el sistema de archivos del usuario. La ruta de descarga predeterminada también puede contener información sensible, lo cual es riesgoso.
No hay forma de descargar automáticamente un archivo y guardarlo en una ubicación específica en su disco duro desde una aplicación de interfaz que se ejecuta dentro de un navegador. Los usuarios de su aplicación decidirán cómo se guarda el archivo en función de la configuración de su navegador.
Si está tratando de lograr ese tipo de cosas, entonces eso está mal y debería considerar otro enfoque.