首页 > 解决方案 > 下载完成后删除本地文件

问题描述

我正在开发一个相当简单的 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。有没有办法确定下载何时成功完成?

标签: javascripthtml

解决方案


与此同时,我认为只需对 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();
  }

推荐阅读