2

send_fileRails中的方法有返回值吗?如果发送成功,我想做一件事,如果发送不成功,我想做另一件事。我查看了此链接上的文档,但没有找到任何相关内容。

4

1 回答 1

2

不,没有办法确认下载完成或成功send_file。从这个问题:我们可以找出回形针下载完成的时间吗?

send_file创建文件,然后传递一个特殊的标头来告诉网络服务器告诉它要发送什么。Rails 实际上根本不发送文件,它设置了这个标头,告诉网络服务器发送文件,然后立即返回,然后继续处理另一个请求。为了能够跟踪下载是否完成,您必须占用 Rails 应用程序进程发送文件并阻止直到用户下载它,而不是将其留给网络服务器(这是它的设计目的)。这是超级低效的。

您可以在客户端使用 cookie 和 JavaScript 做一些事情。看到这个问题:Rails 文件下载和查看更新 - Howto?

于 2012-11-03T00:37:33.887 回答