这是我的Rails项目的结构
Root
-app
-bin
-config
-db
-lib
-log
-public
-spec
-test
-tmp
-uploads
-images
-vendor
我想访问“Root / uploads / images”目录中的图像
我通过谷歌搜索尝试了很多,没有任何帮助,我坚持这一点。请尝试给出解决方案。非常感谢。
答案 0 :(得分:1)
你可以尝试一下:
class ImagesController < ApplicationController
def show
dir_path = "#{Rails.root}/uploads/images"
available_files = Dir.entries(dir_path).map{|e| e.gsub(/\..*/,'')}.reject{|c| c.empty?}
file_path = if available_files.include?(params[:image])
"#{dir_path}/#{params[:image]}"
else
"#{dir_path}/404.jpg"
end
response.headers['Cache-Control'] = "public, max-age=#{12.hours.to_i}"
response.headers['Content-Type'] = 'image/jpeg'
response.headers['Content-Disposition'] = 'inline'
render :text => open(path, "rb").read
end
end
在routes.rb中:
get "images/:image" => "images#show"
如果您担心安全问题,可以向控制器添加权限检查。