【问题标题】:Rails server file download crashing at send_fileRails 服务器文件下载在 send_file 处崩溃
【发布时间】:2017-06-24 18:45:26
【问题描述】:

我正在下载一个文件。每次下载时,我的 Rails 服务器都会崩溃 - 当它到达 send_file 方法时。

控制器代码:

file_path = '/home/rails/rails_app/public/test.csv'
send_file(file_path, options: {disposition: 'attachment', filename: File.basename(file_path)})

服务器日志:

Sent file /home/rails/rails_app/public/test.csv  (0.1ms)
server #

此代码完全可以在 rails 2.X 上运行,但在升级到 rails 4.2.7.1 时无法运行

【问题讨论】:

  • 日志显示您的文件已发送,而不是错误:(也许您使用的是application\pdf,它应该是application\csv
  • 我已经更新了代码。还是一样的问题
  • 您必须为我们提供一些工作,您发布的日志不会显示错误,而是显示成功消息。
  • 如果文件在应用程序文件夹中,您可以使用file_path = 'public/test.csv'等相对路径
  • 其实,在这个服务器日志之后,应用服务器一直宕机。它崩溃并完全退出。所以我有那么多日志。

标签: ruby-on-rails ruby-on-rails-4.2 sendfile x-sendfile


【解决方案1】:

你能试试这个并检查一下吗?

File.open(file_path, 'r') do |f|
  send_data f.read
end

【讨论】:

  • 真棒@jeet。你节省了我很多时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 2021-02-08
  • 2015-09-05
相关资源
最近更新 更多