将数据以文件的形式保存在react的UI中
Save the data in the UI of react in the form of file
我正在从 API
读取数据并下载 file
。我想在 react
应用程序的 public
文件夹中保存相同的 file
。
this.state = {
fileDownloadUrl: null,
fileName: '',
};
方法如下
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: '' });
});
});
}
下载文件的代码。
<a
className="hidden"
download={this.state.fileName + '.json'}
href={this.state.fileDownloadUrl}
ref={(e) => (this.dofileDownload = e)}
>
download it
</a>
我是否可以修改 code
以便 file
可以保存在 react
应用程序的 public
文件夹中。稍后将使用此文件进行翻译。
这是不可能的,因为这会带来安全风险。
大多数OS会默认下载到下载文件夹。
Pure browser-JavaScript 无法获取有关用户文件系统的信息。默认下载路径也可能包含敏感信息,这是有风险的。
无法通过浏览器中的前端应用 运行 自动下载文件并将其保存在硬盘上的特定位置。您应用的用户将根据他们的浏览器设置决定文件的保存方式。
如果你想达到那种目的,那就错了,你应该考虑另一种方法。
我正在从 API
读取数据并下载 file
。我想在 react
应用程序的 public
文件夹中保存相同的 file
。
this.state = {
fileDownloadUrl: null,
fileName: '',
};
方法如下
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: '' });
});
});
}
下载文件的代码。
<a
className="hidden"
download={this.state.fileName + '.json'}
href={this.state.fileDownloadUrl}
ref={(e) => (this.dofileDownload = e)}
>
download it
</a>
我是否可以修改 code
以便 file
可以保存在 react
应用程序的 public
文件夹中。稍后将使用此文件进行翻译。
这是不可能的,因为这会带来安全风险。
大多数OS会默认下载到下载文件夹。
Pure browser-JavaScript 无法获取有关用户文件系统的信息。默认下载路径也可能包含敏感信息,这是有风险的。
无法通过浏览器中的前端应用 运行 自动下载文件并将其保存在硬盘上的特定位置。您应用的用户将根据他们的浏览器设置决定文件的保存方式。
如果你想达到那种目的,那就错了,你应该考虑另一种方法。