Rails中的send_file
方法是否给出了返回值?如果发送成功,我想做一件事,如果发送不成功,我想做另一件事。我查看了this link处的文档,但没有发现任何相关内容。
答案 0 :(得分:2)
不,无法使用send_file
确认下载完成或成功。从这个问题:Can we find out when a Paperclip download is complete?:
send_file
创建文件,然后传递一个特殊的标题来告诉 网络服务器告诉它要发送什么。 Rails实际上并没有发送 文件根本就设置了这个标题,告诉网络服务器发送 文件,但然后立即返回,然后继续服务另一个 请求。为了能够跟踪下载是否完成,您必须 占用你的Rails应用程序进程发送文件并阻塞直到 用户下载它,而不是将其留给网络服务器(其中 是它的设计目的)。这是非常低效的。
您可以在客户端上使用Cookie和JavaScript执行某些操作。 请参阅此问题:Rails File Download And View Update - Howto?