2009-05-23 7 views
6

Tengo una prueba básica de aplicación de rieles con un modelo de usuario que tiene un campo de fotografía manipulado con clip. Creé las vistas para poder crear/editar un usuario y la carga de fotos funciona bien.Utilización de Rails con Paperclip y SWFUpload

<h1>Editing user</h1> 

<% form_for :user, @user, :url => user_path(@user), :html => { :method => "put", :multipart => true } do |f| %> 
    <%= f.error_messages %> 

    <p> 
    <%= f.label :first_name %><br /> 
    <%= f.text_field :first_name %> 
    </p> 
    <p> 
    <%= f.label :last_name %><br /> 
    <%= f.text_field :last_name %> 
    </p> 
    <p> 
    <%= f.label :file %><br /> 
    <%= f.file_field :file %> 
    </p> 

    <p> 
    <%= f.label :photo %><br /> 
    <%= f.file_field :photo %> 
    <p> 
    <%= f.submit 'Update' %> 
    </p> 

<% end %> 

<%= link_to 'Show', @user %> | 
<%= link_to 'Back', users_path %> 

Entonces, quería integrar SWFUpload en mi solicitud. Traté de seguir esto tutorial y ejecutar el test project sin ningún éxito: el botón Examinar no abre un cuadro de diálogo de archivo y se arroja un error # 2176 que es sobre el método selectFiles().

En primer lugar, el problema es acerca de Flash v.10 que no es compatible con la versión anterior de SWFUpload (2.1.0) incluida con el proyecto: selectFiles() ahora está en desuso. Así que traté de actualizar a SWFUpload v. 2.2.0 que ahora usa una configuración button_placeholder_id pero no puedo obtener ningún ejemplo para que funcione.

Así que estoy un poco perdido acerca de cómo usar la inicialización de SWFUpload y sobre y usarlo en mi formulario para poder subir y guardar una foto. ¿Alguna ayuda?

Respuesta

1

Para pasar el identificador de la foto del campo de archivos a SWFUpload, el id de su campo va a ser user_photo (de < input type = id 'archivo' = 'user_photo' .../>), por lo inicializar swfupload con

var swfupload = new SWFUpload({button_placeholder_id:'user_photo' ... }); 

que reemplazará el campo de archivo con un cargador de swf.

Tenga en cuenta que, de forma predeterminada, el archivo se cargará como el parámetro 'Filedata'. Técnicamente, podrías cambiar eso a 'usuario [foto]', pero aparentemente eso no funciona en Linux, por lo que quizás tengas que hacer algunos ajustes en el lado del servidor para moverlo al lugar correcto.

Cuestiones relacionadas