Javascript 生成指向文件的可下载链接并自动启动下载
用户通过按下网页上的按钮在my node js服务器上生成文件。 然后服务器创建一个.zip文件。 我想公开这个zip文件,以便它可以自动下载到用户的客户端。 下载后,我希望服务器检测下载完成并删除zip文件 1-如何在node js中公开文件?系统是否应将其放入公用文件夹?这意味着这将是一个安全风险,任何人都可以阅读。我如何链接到一个不在公用文件夹中的文件并使其可下载?Javascript 生成指向文件的可下载链接并自动启动下载,javascript,node.js,express,Javascript,Node.js,Express,用户通过按下网页上的按钮在my node js服务器上生成文件。 然后服务器创建一个.zip文件。 我想公开这个zip文件,以便它可以自动下载到用户的客户端。 下载后,我希望服务器检测下载完成并删除zip文件 1-如何在node js中公开文件?系统是否应将其放入公用文件夹?这意味着这将是一个安全风险,任何人都可以阅读。我如何链接到一个不在公用文件夹中的文件并使其可下载? 2-如何检测下载完成?我是否应该运行cron作业来删除文件,而不必担心下载进度?以下几点可以帮助您: 如果要创建临时文件,最
2-如何检测下载完成?我是否应该运行cron作业来删除文件,而不必担心下载进度?以下几点可以帮助您:
Content-Disposition
的标题在下载过程中决定其名称)。您可以将其存储在项目中的临时目录中李>
href
的隐藏
标记,然后在JS代码中触发自动单击此链接。如果您支持新的浏览器,最好在其中添加download
属性- 将文件放入公用文件夹。创建将其内容流式传输到客户端的端点。为它创建一些临时目录
- 运行CRON作业以删除文件。或者仅在出现故障时运行它,以清理旧文件。文件下载后应该被删除(你们会知道,当你们的流关闭时,你们会得到一个合适的事件)
temp
catalog,并为其创建令牌- 压缩文件名
- 令牌(例如,生成的随机散列)
- 生成的时间戳
- 检查令牌是否仍然有效(例如30秒)
- 若否:403或404
- 如果是:开始流式传输数据(创建文件流并将其流式传输到客户端)
- 当流式返回时,使用
内容配置
如何生成zip文件?您不能简单地用zip文件响应生成zip文件的请求。如果你这样做的话,保护zip文件并知道何时删除它会简单得多。我通过调用操作系统内置的zip命令行工具来生成zip文件。