Communication flash et rails

bonjour
je travail sur une application rails avec flash,j’envoie des donnes
depuis flash est ça marche ,le rails reçois ces données facilement ,
mon problème c’est que je voudrais que ces donnes soit affecter dans les
variables de rails par exemple:
flash envois une variable qui s’appelle Filedata ,je vérifier si il est
bien reçus avec puts params[:Filedata] c’est bien.
dans mon apllication rails il y a une une variable
params[:image][:uploaded_data]
car lorsque je travail sans flash j’utilise une formulaire qui fais ça
:
<% form_for(:contenu, :url => { :action=>‘create’},:html => { :multipart
=> true }) do |f| -%>

Title
<%= f.text_field :title %>

Summary
<%= f.text_area :summary %>

Associate Image:
<%= file_field 'image','uploaded_data' %>

<%= submit_tag 'Create' %>

<% end -%> je veux remplacer la ligne qui contien file_field car se travails se fais au niveu de flash,

j’essaie avec plusieurs méthode :
1-- params[:uploaded_data] = params[:Filedata]
2-- params[:image][:uploaded_data] = params[:Filedata]
3-- <%= hidden_field ‘image’, ‘uploaded_data’, :value =>
params[:Filedata] %>

j’ai passé 3 jour pour résolu ce problème mais rien ,si quelqu’un a des
solution je suis preneur ,et merci d’avance .

Essayer de mettre du HTML dans du flash, c’est souvent une mauvaise
idée.

Tu ferais mieux d’envoyer du XML tout propre à flash, qui sait très bien
gérer le XML.

(maintenant j’avoue que ça fait 3 fois que je relis ton mail et que je
n’arrive toujours pas à comprendre ce que tu essaye de faire)

bonjour

(maintenant j’avoue que ça fait 3 fois que je relis ton mail et que je
n’arrive toujours pas à comprendre ce que tu essaye de faire)

je ré explique mon problème :
ce code <%= file_field ‘image’,‘uploaded_data’ %> sert a enregistre le
path de file choisis dans le params uploaded_data qui est une attribut
d’image ,c’est ça?
je veux affecter a uploaded_data d’image le contenu de Filedata envoyer
par flash

sans file_fields,
j’espère que mon mail soit compréhensible ,et merci a tout

Katebe I. wrote:

bonjour

(maintenant j’avoue que ça fait 3 fois que je relis ton mail et que je
n’arrive toujours pas à comprendre ce que tu essaye de faire)

je ré explique mon problème :
ce code <%= file_field ‘image’,‘uploaded_data’ %> sert a enregistre le
path de file choisis dans le params uploaded_data qui est une attribut
d’image ,c’est ça?
je veux affecter a uploaded_data d’image le contenu de Filedata envoyer
par flash

sans file_fields,
j’espère que mon mail soit compréhensible ,et merci a tout

Si j’ai bien compris, tu souhaites qu’un objet flash remplace ton upload
de fichier dans le formulaire.
Si tel est le cas, tu ne devrais pas avoir un file_field mais un simple
text_field (voir meme un hidden_field) qui contiendra le nom du fichier
uploadé via ton objet flash.
L’upload en lui meme étant réalisé via flash, une fonction javascript te
permettra alors de remplir ton champs avec le nom du fichier

Mais ce que tu ne peux pas faire (et il semble que ce soit ce que tu
souhaites faire), c’est poser un fichier récupéré dans ton objet flash
dans ton formulaire…
Il y a bien 2 actions distinctes :
Flash envoi le fichier et retourne le nom du fichier a ton javascript
qui va l’écrire dans ton champs
Le formulaire est posté pour renseigner ta base avec les champs dont le
nom du fichier uploadé.

Katebe I. a écrit :

bonjour
je travail sur une application rails avec flash,j’envoie des donnes
depuis flash est ça marche ,le rails reçois ces données facilement ,
mon problème c’est que je voudrais que ces donnes soit affecter dans les
variables de rails par exemple:
flash envois une variable qui s’appelle Filedata ,je vérifier si il est
bien reçus avec puts params[:Filedata] c’est bien.

De quel type est ce params[:Filedata] envoyé par flash et reçu par
Rails?
C’est un String ou un fichier?
Avant que tu ne rajoute ton bout de flash, Rails s’attend à recevoir un
fichier dans params[:image][:uploaded_data]. Si tu lui donne autre
chose, il ne va pas être content, ou alors il va falloir lui expliquer
comment se débrouiller avec ce que tu lui donne.
Si c’est un String, je vois pas trop comment Rails va se débrouiller
pour ramener le fichier qui, de son coté, est resté sur la machine
cliente (celle ou il y a le mec en train de cliquer dans son navigateur
web).

Dans ce cas, comme le suggérait Tony, il ne faut pas que flash parle
directement à ton serveur rails, mais qu’il parle au navigateur de la
machine cliente, en javascript, pour lui dire: met ce nom de fichier
dans le champs du formulaire prévu à cet effet, puis soumet le
formulaire au serveur.

Bon, c’est toujours vague, mais je vais faire avec.

Si ton problème est d’envoyer un fichier en utilisant Flash, alors il
vaut
mieux poser la question sur un forum ou une mailing-list dédiée Ã
Macromedia
Flash (c). Il y en a plein, en voici un que je trouve sympa :
Musique libre de droit pour vos vidéos youtube - par Musicincloud. http://flashhouse.free.fr/forums/
Ici
je crains que tu ne trouve pas de réponse à cette question, Ruby on
Rails
peut très bien tolérer une interface Macromedia Flash (c), et du moment
que
Macromedia Flash (c) sait envoyer un fichier par HTTP, Rails peut le
recevoir.

Maintenant, Rails ne contient pas Macromedia Flash (c) justement à cause
de
“Macromedia” et de “(c)”. Ruby on Rails est un outil open-source,
Macromedia
Flash (c) est une technologie privative, et cette mailing list n’a pas
pour
vocation de servir de support aux produits Macromedia…

Katebe I. a écrit :

:

Il est peut-être un peu tard pour répondre, mais aujourd’hui le rails
envy podcast pointe sur un lien qui semble parler de ce problème
d’upload via flash

http://seventytwo.co.uk/posts/making-swfupload-and-rails-work-together

Si tu as déjà résolu ce problème, ça servira peut-être à quelqu’un qui
tappera sur google

J’utilise SwfUpload pour mon projet actuel et je voulais juste
preciser que SwfUpload est une approche differente de ce qui est
decrit plus haut: c’est une petite application Flash qui communique
avec du Javascript.

Cette approche comporte plusieurs avantages:

  • on peut uploader plusieurs fichiers a la fois
  • on peut filtrer les types de fichiers valides
  • surtout, l’appli peut indiquer immediatement au client si le fichier
    a uploader est trop gros (avec une approche cote serveur, tout le
    fichier doit etre uploade avant de pouvoir afficher une erreur…)

Par contre, il y a pas mal d’obstacles a surmonter (l’article en
parle, ms je n’ai pas regarde en detail):

  • probleme de securite (il faut remettre la session a la main dans
    l’URL + hacker CGI::Session, yuck!)
  • probleme de mime type (la, il faut un hack d’attachment_fu +
    mimetype_fu)

Donc c’est une solution tres pratique, mais pas super evidente a
mettre en place. Enfin, l’article a l’air bien: dommage qu’il ne soit
pas sorti un peu plus tot, ca m’aurait aide…

Cyrille