gpt4 book ai didi

ruby-on-rails - rails 如何知道 send_file 何时完成

转载 作者:行者123 更新时间:2023-12-01 11:58:47 25 4
gpt4 key购买 nike

由于准备要下载的数据内容需要一些时间,所以我想在用户提交请求时显示一条消息“准备下载文件”

然后当文件准备好后,我使用send_file发送数据

完成后,我需要清除消息

非常感谢

最佳答案

这是我会做的。

<强>1。创建 prepare_file 操作

首先,我将创建一个操作,其工作只是创建文件而不是呈现 HTML,它会呈现一个具有所创建文件名称的 JSON 对象。

<强>2。使用 AJAX 调用 prepare_file 操作

在客户端,当用户点击下载文件时,您会显示消息“正在准备下载...”,并且只对该操作执行 AJAX 请求。您将通过 AJAX 获得的响应是​​所创建文件的名称。

<强>3。重定向到文件下载

最后,您可以隐藏准备下载消息并将浏览器重定向到通过 JavaScript 使用已创建文件的名称进行文件下载。您将在此操作中使用 send_file

我知道,在问题中,您还希望能够在文件下载时向用户显示一条消息,并在下载完成时向用户显示另一条消息。但是,除非您编写自己的客户端下载管理器,否则这是不可能的。浏览器完全处理文件下载,用户将在浏览器中看到文件正在下载以及进度。所以,我理解你的意思,但你不应该觉得用户没有被告知正在发生的事情。

至少使用此解决方案,您会在准备文件时向他们显示一条消息,然后一旦该消息消失,他们就会从浏览器中获取下载文件对话框。

如果您需要有关如何执行此操作的实际代码示例的帮助,请告诉我。

关于ruby-on-rails - rails 如何知道 send_file 何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3593889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com