我正在寻找一种上传文件(一个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