javascript - 下载完成后删除本地文件
问题描述
我正在开发一个相当简单的 webapp,它有一个按钮,用于将数据导出到 csv 文件,然后将其下载到用户的机器上。javascript代码相当简单:
function setCsvToDownload(csv_file_path) {
var temp_download_link = document.createElement("a");
temp_download_link.download = csv_file_path;
temp_download_link.href = csv_file_path;
temp_download_link.click();
}
我遇到的问题是我想告诉后端在用户端下载完成后删除它写入的本地 csv。有没有办法确定下载何时成功完成?
解决方案
与此同时,我认为只需对 csv 文件的内容进行 encodeURI 即可下载,而无需写入磁盘上的文件。我对网络开发相当陌生,所以我不知道这是一个选择。这是像我这样遇到此问题的任何其他初学者的代码片段(csv_name 和 csv_contents 是从 bakcend 发送的)
function setCsvToDownload(csv_name, csv_contents) {
var temp_download_link = document.createElement("a");
temp_download_link.download = csv_name;
temp_download_link.href = 'data:text/csv;charset=utf-8' + encodeURI(csv_contents);
temp_download_link.target = '_blank';
temp_download_link.click();
}
推荐阅读
- cassandra - TWCS 上的 Cassandra 维修
- java - Zip4j 无法删除或覆盖文件内的文件
- android - 如何在正确的时间调用方法?
- flutter - 使用 maxLength 和 Flutter TextField
- python - 从文本文件创建元组
- java - 为什么我得到一个“mergeCursor”对象而不是一个“字符串”?
- azure - 能够 ping 到某个 IP,但无法从 Azure vm 浏览该 IP
- android - 条件语句选择图像时出现 Kotlin 错误
- python - Django json响应中的数据操作
- c# - 如何使用 Serilog 在 Json 中获取日志级别 - .NET Core 3.1