Rails 3 - upload files to public directory

前端 未结 3 1366
你的背包
你的背包 2020-12-02 10:34

I\'m looking for a simple way to upload a file (an xml file) to the public directory of Rails 3. Once it\'s there I want to open it, parse the contents and delete the file a

相关标签:
3条回答
  • 2020-12-02 11:14

    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

    0 讨论(0)
  • 2020-12-02 11:20
    img = params[:user][:photo]
    File.open(Rails.root.join('public','uploads',img.original_filename),'wb') do |file| file.write(img.read)
    
    0 讨论(0)
  • 2020-12-02 11:29

    I received an error indicating "undefined method `cp' for File:Class". Realized that this should actually be updated as follows:

    Right code for file_uplad method:

    def file_upload
        tmp = params[:file_upload][:my_file].tempfile
        require 'ftools'
        file = File.join("public", params[:file_upload][:my_file].original_filename)
        FileUtils.cp tmp.path, file
    end
    
    0 讨论(0)
提交回复
热议问题