Получить полный путь к файлу file_field в рельсах

Я пытаюсь получить полный путь от изображения, которое я загружаю с помощью помощника rails file_field.

%h4 Upload Image
.col-sm-8
  =label_tag "Upload Image"
.col-sm-4  
  =form_tag(controller:"images", :html => {:multipart => true}) do
    =select("app", "app", ["#{Rails.env}_thing", "#{Rails.env}_otherthing"], {include_blank: true})
    =file_field :post, :image
    %button.btn.btn-primary.btn-block{:type => "submit"}
      ="Upload Image"

когда он попадает в действие контроллера, параметры:

{"utf8"=>"✓", "authenticity_token"=>"kVf52OKMdkQPte/jA99R33213123210WRklc2uMhGdM=", "app"=>{"app"=>"development_thing"}, "post"=>{"image"=>"picture.png"}, "html"=>{"multipart"=>"true"}, "action"=>"create", "controller"=>"images"}

Что мне действительно нужно, так это полный путь к этому файлу изображения. Как бы я получить это? Так что, если я загрузил с моего рабочего стола, это будет "/Users/bob/desktop/picture.png"

Спасибо!

1 ответ

Решение

Вы не можете получить полный путь к файлу через тип ввода "файл". Браузер не допустит этого. Это функция безопасности во всех современных браузерах.

В Chrome вы получите

C:\fakepath\filename.ext

в то время как в Mozilla вы получаете только имя файла

filename.ext

Вы можете найти много других вопросов, связанных с этим. увидеть

Как получить полный путь к файлу из файла ввода

Полный путь от ввода файла с использованием jQuery

Другие вопросы по тегам