Rails 3 – upload files to public directory

a. Form

<%= form_for :file_upload, :html => {:multipart => true} do |f| %>
  <%= f.file_field :my_file %>
  <%= f.submit "Upload" %>
<% end %>

b. controller

def file_upload  
  require 'fileutils'
  tmp = params[:file_upload][:my_file].tempfile
  file = File.join("public", params[:file_upload][:my_file].original_filename)
  FileUtils.cp tmp.path, file
  ... # YOUR PARSING JOB
  FileUtils.rm file
end

But you can parse just tempfile, so you don’t need to copy it to public dir and it will automatically deleted

Leave a Comment