ruby-on-rails-3 - framework - tutorial django
Rails 3: carga archivos en el directorio público (3)
Estoy buscando una forma sencilla de cargar un archivo (un archivo xml) en el directorio público de Rails 3. Una vez que esté allí, quiero abrirlo, analizar el contenido y eliminar el archivo después de eso.
Cada vez que busqué la carga de archivos, me encontré con Paperclip. Pero no quiero asociar el archivo con un objeto. Solo quiero subirlo. ¿Cuál es la forma más fácil de hacer esto?
Recibí un error que indica "método indefinido` cp ''para Archivo: Clase ". Se dio cuenta de que esto debería actualizarse de la siguiente manera:
Código correcto para el método 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
a. Formar
<%= form_for :file_upload, :html => {:multipart => true} do |f| %>
<%= f.file_field :my_file %>
<%= f.submit "Upload" %>
<% end %>
segundo. controlador
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
Pero puede analizar solo el archivo temporal, por lo que no necesita copiarlo en el directorio público y se eliminará automáticamente.
img = params[:user][:photo]
File.open(Rails.root.join(''public'',''uploads'',img.original_filename),''wb'') do |file| file.write(img.read)