ruby-on-rails - rails 如何渲染具有正确文件名的文件

标签 ruby-on-rails

这很难解释,所以我会尽力而为,如果人们需要更多信息,希望编辑这个问题。我没有提供确切的代码,而只是问题的一个示例。

我正在使用 rails 2.3.8。我在 Unix 上。

我在Apache无法访问的目录下有一堆文件。 (即/data/files/file.rpk)

我有以下看法。

link_to "RPK File", :controller => 'mycontroller', :action=> 'myaction', :file => '/data/files/file.rpk' 

我的 Controller 中有以下内容。
def myaction
  if FileTest.exists?(params[:file])
    render :file => params[:file]  
  end
end

当我选择页面上的链接时,我会收到所需文件的下载提示,但文件名是“myaction”而不是文件名。

关于如何正确命名它的想法?

最佳答案

您要使用 send_data:filename选项。见 API documentation .

你想成为万分小心不过,有了这个。永远不要相信客户/用户!他们会发送 file=../../../../etc/group或者为了读取系统上的任意文件,所以在将它传递给任何文件读取方法之前一定要清理该值。

关于ruby-on-rails - rails 如何渲染具有正确文件名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4650554/

相关文章:

ruby-on-rails - rails 上的 ruby 。 Unicode 路由

ruby-on-rails - "DEPRECATION WARNING: class_inheritable_attribute is deprecated...."执行 rake db :create 时

ruby-on-rails - 在 SQLite Ruby on Rails 中查看表数据

ruby-on-rails - HAML:form_tag困境(缩进?)

ruby-on-rails - 使用 .created_at 作为日期引用获取天数/周数

ruby-on-rails - Ruby 将方法发送到 Array#map

javascript - Assets :precompile because of Javascript function default argument 期间出错

ruby-on-rails - 重构 params[...] 的许多 if 语句,在 Controller 操作中

ruby-on-rails - NGINX + rails + dokku 上的错误 502 Bad Gateway

ruby-on-rails - 如何在 Rails 4 中将 PDF 转换为 Excel 或 CSV