这很难解释,所以我会尽力而为,如果人们需要更多信息,希望编辑这个问题。我没有提供确切的代码,而只是问题的一个示例。
我正在使用 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/