我正在使用send_file
方法下载文件。它在我的本地机器上正常工作。但它不在服务器上工作 - 它返回一个空白文件。Ruby on Rails - send_file
代码:
send_file Rails.root.join('public', 'uploads') + (uploaded_file.original_filename + ".filtered")
请帮助。
我正在使用send_file
方法下载文件。它在我的本地机器上正常工作。但它不在服务器上工作 - 它返回一个空白文件。Ruby on Rails - send_file
代码:
send_file Rails.root.join('public', 'uploads') + (uploaded_file.original_filename + ".filtered")
请帮助。
根据您使用的是什么Web服务器,您可能必须更改您的config/environments/production.rb
中的发送文件设置。
例如,对于nginx
,您需要取消注释出这一行:
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
非常感谢亚伦。它现在有效。 – Sayuj 2011-05-27 14:25:30
谢谢你,好的回答。保存我的时间。 – HelloWorld 2012-03-05 14:41:45
尝试:
send_file Rails.public_path.join('uploads', "#{uploaded_file.original_filename}.filtered")
还要注意的是,如果你有public
目录,这些可以直接将早餐中的文件,所以你可以重定向到该项目的生成的URL(尽管这可能不是很REST- FUL)。
编辑:
由于非标“.filtered”扩展名的文件,你可能需要做一些事情,如:
send_file Rails.public_path.join('uploads', "#{uploaded_file.original_filename}.filtered"), :type => 'application/xml', :disposition => 'attachment'
更改:type
值相匹配的内容类型正在提供的文件。
请问文件中。即如果你goto yourdomain/public/uploads/filename.filtered它的工作? – Yule 2011-05-27 13:07:11