Foros del Web » Programando para Internet » Ruby »

Carga de imagenes

Estas en el tema de Carga de imagenes en el foro de Ruby en Foros del Web. Buenas noches desde Madrid, Alguien podría decirme cómo se puede implementar en RoR la carga de archivos al servidor?. Quiero hacer que cada usuario pueda ...
  #1 (permalink)  
Antiguo 03/03/2014, 15:47
 
Fecha de Ingreso: febrero-2013
Mensajes: 55
Antigüedad: 11 años, 9 meses
Puntos: 0
Carga de imagenes

Buenas noches desde Madrid,

Alguien podría decirme cómo se puede implementar en RoR la carga de archivos al servidor?. Quiero hacer que cada usuario pueda tener sus imagenes pero no se como implementar el "upload", muchas gracias.

Un saludo.
  #2 (permalink)  
Antiguo 04/03/2014, 12:34
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Carga de imagenes

Para un simple upload, es sencillo, creas un campo tipo file en el formulario, y en el controlador
lo tomas y lo guardas en el directorio público.

En la vista:
Código ruby:
Ver original
  1. <%= form_for @user do |f| %>
  2.   <%= f.file_field :imagen %>
  3. <% end %>

Y en el controlador:
Código ruby:
Ver original
  1. uploaded = params[:user][:imagen]
  2. File.open(Rails.root.join('public', 'uploads', uploaded.original_filename), 'wb') do |file|
  3.   file.write(uploaded.read)
  4. end

Esto deberia funcionar (no lo eh testeado :P) pero con esto no llevarias un control ni registro de los archivos subidos. Aparte que no validas el tipo de archivo, ni puedes procesar las imagenes.

Para eso te recomiendo la gema Paperclip, es bastante buena y facil de usar. Tiene opciones de validación de tipo de archivo, tamaño, y puedes procesar las imágenes.

Implementala y si te dá problemas nos avisas en este foro.

Un saludo ^^
__________________
>> abimaelmartell.com

Etiquetas: imagenes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:28.