2009-05-23 10 views
6

J'ai effectué un test d'application de rails de base avec un modèle d'utilisateur dont un champ photo est manipulé avec un trombone. J'ai créé les vues pour pouvoir créer/éditer un utilisateur et le téléchargement de photo fonctionne bien.Utilisation de Rails avec trombone et 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 %> 

Ensuite, je voulais intégrer SWFUpload dans mon application. J'ai essayé de suivre ce tutorial et exécuter le test project sans aucun succès: le bouton Parcourir n'ouvre pas un dialogue de fichier et une erreur # 2176 est lancée à propos de la méthode selectFiles(). Tout d'abord, le problème concerne Flash v.10 qui n'est pas compatible avec l'ancienne version de SWFUpload (2.1.0) incluse dans le projet: selectFiles() est maintenant obsolète. J'ai donc essayé de passer à SWFUpload v. 2.2.0 qui utilise maintenant un paramètre button_placeholder_id mais je ne peux obtenir aucun exemple pour fonctionner.

Donc, je suis un peu perdu sur la façon d'utiliser l'initialisation SWFUpload et sur et de l'utiliser dans mon formulaire afin que je puisse télécharger et enregistrer une photo. Toute aide?

Répondre

1

Vous pouvez essayer d'utiliser easy-swf-upload plugin

Vous aurez juste besoin d'insérer une aide et peut-être adopter css

1

Pour passer le champ de fichier photo id SWFUpload, l'identifiant de votre champ va être user_photo (de < input type = id 'fichier' = 'user_photo' .../>), afin d'initialiser SWFUpload avec

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

qui remplacera le champ de fichier par un uploader swf. N'oubliez pas que le fichier sera téléchargé par défaut en tant que paramètre 'Filedata'. Techniquement vous pouvez changer cela en 'user [photo]', mais apparemment cela ne fonctionne pas sous Linux, donc vous devrez peut-être faire quelques shimmying sur le côté serveur pour le mettre au bon endroit.

Questions connexes