如何在rails中上传文件?

时间:2010-10-14 12:27:46

标签: ruby-on-rails file file-upload filefield

我是铁杆新手。我想知道rails中的文件上传过程。谁能帮帮我吗... 谢谢, Althaf

2 个答案:

答案 0 :(得分:6)

通常gems / plugins用于处理文件上传。我最喜欢的一个,也许是无处不在的Paperclip

在您看来,您必须告诉rails帮助者您正在上传这样的文件:

<%= form_for @model, :html => { :multipart => true } do |form| %>

答案 1 :(得分:1)

以下是一种如何在不使用任何gem的情况下上传文件的方法,只使用rails,

解决方案:=&gt;

    def create
        @photo = Photo.new(photo_params)
        uploaded_io = params[:photo][:photo]
        File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
           file.write(uploaded_io.read)
         end
        if @photo.save
          flash[:success] = "The photo was added!"
          redirect_to root_path
        else
          render 'new'
        end
      end


def upload
  uploaded_io = params[:person][:picture]
 File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
    file.write(uploaded_io.read)
  end
end

视图中的form.html.erb应包含此内容,非常简单,

 <%= form_for @photo do |f| %>
      <%= f.file_field :photo %>
      <div class="actions">
        <%= f.submit "Upload" %>
      </div>
    <% end %>

最后模型应该有,

  has_attached_file :image

。############################################## #### 您现在可以享受加载任何文件。

谢谢。玩火车吧。

Use <video_tag> for viewing video files.
Use <audio_tag> for viewing audio files.
Use <object>"link"</object> for viewing PDF or DOC files.