0
我想顯示鏈接列表(在index.html)目錄中的文本文件,下載文件。 如果有子目錄,我希望它的鏈接刷新索引頁並列出該子目錄中的文件(作爲下載鏈接)。列表文件的下載,額外的路徑添加到鏈接的鏈接
我file_transfers/index.html.erb有:
<%- output_dir ||= 'outputs/' %>
<%- Dir.foreach(output_dir) do |f| %>
<%= link_to f, output_dir + f %>
<%- end %>
我在配置最後的路線/ routes.rb文件是:
match ':file_dir/:file_name' => 'file_transfers#show'
控制器:
def show
file = params[:file_dir] + '/' + params[:file_name]
file += ".#{params[:format]}" if params[:format]
if File.directory?(file)
render :index, :locals => {:output_dir => file + '/'}
else
send_file params[:file_dir] + '/' + params[:file_name], :type => "text/csv"
render :index
end
end
當我點擊一個目錄鏈接,它確實會用它的文件刷新列表,但當我連接時,鏈接會顯示一個額外的'output /'目錄在他們身上,但在html中的href attr沒有額外的路徑。這就像額外的文件夾被認爲是根0.0.0.0:3000的一部分(如在0.0.0.0:3000/outputs)
確保您瞭解風險:http://guides.rubyonrails.org/security.html#file-downloads請參閱第4.4節。 – jdoe
指出,謝謝你 – rigyt