send_file vs html5下载属性

时间:2017-11-16 04:37:41

标签: ruby-on-rails ruby html5 cross-browser

现在看起来每个浏览器都支持HTML5 download attribute,我想知道在使用Rails的控制器中使用它而不是创建链接和使用send_file是否有任何优点/缺点

1 个答案:

答案 0 :(得分:1)

send_file更通用,效率更高。

它的主要优点是它使用X-Sendfile响应标头。这样做是将文件的流式处理从Ruby卸载到服务器(例如Nginx或Apache),该服务器针对高吞吐量内容交付进行了优化。

普通'下载'链接保存目标,无论其上显示的是什么。例如,如果目标受会话保护,并且会话在您单击链接之前到期,则可能会出现问题。您最终会在不知情的情况下保存登录页面。使用send_file,如果会话正常,您可以动态启动下载,否则会重定向到登录页面。

send_file还允许您动态指定有意义的文件名,因此,如果您的链接指向/ users / 42,则可以将下载名称设置为" John Smith.csv&#34 ;而不是神秘的" 42"。