Forum: Rails-ES Re: Upload en ajax

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Miguel Angel Calleja Lÿffffe1zaro (Guest)
on 2007-03-19 23:02
(Received via mailing list)
Aha, efectivamente es así, ahora para copiarlo en el directorio que
quiera, basta con leer el params[:file_data].read y copiarlo en otra
parte. Muchísimas gracias

----- Mensaje original ----
De: Daniel R. Troitiño <removed_email_address@domain.invalid>
Para: La lista sobre Ruby On Rails (rubyonrails.com) en castellano
<removed_email_address@domain.invalid>
Enviado: lunes, 19 de marzo, 2007 19:53:49
Asunto: Re: [Ror-es] Upload en ajax

On 3/19/07, Miguel Angel Calleja Lázaro <removed_email_address@domain.invalid> 
wrote:
> <%=  start_form_tag( {:action => :update_form}, :multipart => true,
>
> Cuando doy al submit, el formulario es submitado en el iframe oculto, se
> pregunto si habría que hacer alguna funcionalidad para subirlo al
> servidor, no? algo como leer el fichero que subo (File.open ....)  y
> escribirlo en el servidor en la ruta correcta.
>
> Esas son mis dudas, si alguien me puede ayudar se lo agredeceré
> enormemente, estoy perdidillo, gracias
>

El params[:file_data] que obtienes es un objeto File de Ruby, por eso
cuando lo imprimes aparece eso.

Para comprobar si el usuario ha enviado un archivo debes comprobar si
tu params[:file_data].size > 0. Para obtener los datos del archivo
puedes hacer un params[:file_data].read, para obtener el tipo de
fichero params[:file_data].content_type y para obtener el nombre
original params[:file_data].original_filename.
_______________________________________________
Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es






______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
Miguel Angel Calleja Lázaro (Guest)
on 2007-03-20 12:32
(Received via mailing list)
Ya he conseguido hacer el upload, ahora me gustaría compaginarlo con un
progress bar, he estado viendo esta página:
 http://sean.treadway.info/demo/upload/  , se puede descargar el ejemplo
o ver el video:
http://sean.treadway.info/files/howto-upload-progress-2.mov
Estoy intentando realizar el step4, el primer intento, parece que no me
hace el progress bar, lo hace cuando ya ha terminado de subir el
fichero, debe hacerlo mientras.
Bueno, lo que he hecho ha sido ésto:

Me he instalado el plugin upload_progress.

Mi método:

# Add this line to get uplaod status for your action
  upload_status_for :update_form

def update_form
    @message = 'File uploaded: ' + params[:file_data].size.to_s
        responds_to_parent do
            size=params['file_data'].size
            tipo=params[:file_data].content_type
            nombre=params[:file_data].original_filename
            contenido=params[:file_data].read
            if size>0
                dest=File.join(UPLOAD_DIR,sanitize_filename(nombre))
                File.open(dest.untaint, 'wb') { |f| f << contenido }
                #Borramos el fichero temporal si fue creado
                local_temp_file=params[:file_data].local_path()
                File.unlink(local_temp_file) if local_temp_file
            end
            render :update do |page|
                page.replace_html 'upload_box', :partial =>
'upload_form', :locals=>{::nombre=>nombre}
            end
        end
    finish_upload_status "'#{@message}'"
end

Mi plantilla:
<div id="upload_box">
        <%= render :partial=>'upload_form'%>
</div>

Mi partial 'upload_form':
<%= form_tag_with_upload_progress({:action => 'update_form'}, {
     :begin => "new Effect.Appear('status')",
     :finish => "$('message').innerHTML = arguments[0]" })%>
<%= text_field_tag
("imagen","imagen","value"=>nombre,"disabled"=>true)%>    <br/>
<%= file_field_tag "file_data" %>
    <%= submit_tag "Upload" %>

<div id="status" style="display: none">
    <%= upload_status_tag %>
  </div>
    <%= end_form_tag %>
<iframe name="upload-frame" id="upload-frame" style="width: 0; height:
0;  border: 0;"></iframe>
<div id="message"><%= @message %></div>

Algo estoy haciendo mal, no me hace el progress bar cuando se está
subiendo el archivo, me podeis ayudar? Gracias
This topic is locked and can not be replied to.