我正在尋找一種上傳文件(一個xml文件)到Rails 3的公共目錄的簡單方法。一旦它在那裏,我想打開它,解析內容並刪除之後的文件。Rails 3 - 將文件上傳到公共目錄
每當我搜索文件上傳時,我都會遇到Paperclip。但我不想將該文件與對象關聯。我只想上傳它。最簡單的方法是什麼?
我正在尋找一種上傳文件(一個xml文件)到Rails 3的公共目錄的簡單方法。一旦它在那裏,我想打開它,解析內容並刪除之後的文件。Rails 3 - 將文件上傳到公共目錄
每當我搜索文件上傳時,我都會遇到Paperclip。但我不想將該文件與對象關聯。我只想上傳它。最簡單的方法是什麼?
a。表格
<%= form_for :file_upload, :html => {:multipart => true} do |f| %>
<%= f.file_field :my_file %>
<%= f.submit "Upload" %>
<% end %>
b。控制器
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
但是你可以分析只是臨時文件,所以你不需要把它複製到公共目錄,它會自動刪除
我收到指示「未定義的方法`CP」文件的錯誤:類」。意識到如下這實際上應該被更新:對於file_uplad方法
權代碼:
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
呃。每次調用方法時不要執行require - 在文件頭中執行一次(因爲它是stdlib的一部分,如果它是一個gem,則應該將它放在gemfile中) – yxhuvud 2012-01-24 16:36:49
img = params[:user][:photo]
File.open(Rails.root.join('public','uploads',img.original_filename),'wb') do |file| file.write(img.read)
非常感謝。事實上,我已經有了。我只是不知道臨時文件已經在我的params散列中。 – smark 2011-04-26 08:21:54