从文件字段控件获取图像名称或路径到控制器的页面

时间:2014-04-09 10:02:51

标签: ruby-on-rails

我的页面上有一个file field控件,如下所示:

<h2><%= @blah %>hello</h2>
    <%= form_for(:ImageUpload, :html => { :id => "imageupload" }) do |f| %>
    <table width="100%">
        <tr>
            <td align="left">
                <%= file_field 'upload', 'datafile' %>
            </td>
        </tr>
    </table>
    <table width="92%">
                <tr>
                   <td align="center">
                      <div class="button" style="margin-right:60px;">
                        <%= f.submit "Next", { :class => "buttonSearch"} %>
                      </div>
                   </td>
                </tr>
    </table>
    <% end %> 

我想使用file field来获取图片并设置为用户个人资料,因为我希望获得image nameimage path并在下方使用

  def create
    @blah = params[:upload]
    upload_img = params[:upload]
    render 'new'
  end

但是在@blah变量中,它让我这样{"datafile"=>"index.jpg"}hello,如何从file field控件获取图像名称或路径到控制器的页面,请建议我等待期待你的答复。 感谢。

3 个答案:

答案 0 :(得分:0)

你可能在这里遗漏了一些东西

@blah = params[:upload]["datafile"]

答案 1 :(得分:0)

使用gem carrierwave

否则你需要做文件操作来保存图像获取图像。让你的工作变得简单。

请参阅此处的文档http://carrierwave.rubyforge.org/rdoc/

答案 2 :(得分:0)

请添加您的form_for标记 multipart:true 选项。

语法: -

<h2><%= @blah %>hello</h2>
<%= form_for(:ImageUpload, :html => { :id => "imageupload",:mulitipart => true}) do |f| %>
<table width="100%">
    <tr>
        <td align="left">
            <%= file_field 'upload', 'datafile' %>
        </td>
    </tr>
</table>
<table width="92%">
            <tr>
               <td align="center">
                  <div class="button" style="margin-right:60px;">
                    <%= f.submit "Next", { :class => "buttonSearch"} %>
                  </div>
               </td>
            </tr>
</table>
<% end %>