Gestion d’une galerie photo avec swfUpload dans l’admin


Olivier
Gestion d’une galerie photo avec...

Je vous propose de voir une gestion de galerie photo pour l’administration, telle que je l’ai abordée dans un de mes derniers projets.

Pour vous situer, il s’agit d’un site de vente en ligne.
Qui dit vente dit produits, et qui dit produits dit photos 😀
(suite…)

Show Comments (26)

Comments

  • thomas

    Bonjour,
    J’ai eu une petite erreur d’installation, je ne sais pas si c’est du à mes config serverus en local mais il a fallut que j’enleve ‘mime_types’ => ‘web_images’, dans la classe de mon formulaire.
    En faisant afficher les erreus il me disait invalide mime_type (‘application/octet-stream’).
    j’ai enlevé, ca marche nickel!

    de toute façon la vérification est déja faite via le JS.

    • Article Author
  • neothone

    Bonjour,

    J\’ai bien appliqué ce tuto sympatique. J\’ai rencontré des problèmes avec le generator.yml. Le parser ne comprenait pas les display dans le contexte \"edit\" et \"new\" (si on supprimait celui dans \"edit\"). J\’ai donc du les rappatrier dans le form général.

    Ensuite, je me retrouve maintenant devant ces logs :
    \"[27-Sep-2009 18:28:12] Action \"produit/1\" does not exist.
    [27-Sep-2009 18:28:12] Action \"produit_photo/1\" does not exist.\"

    Cela se produit lorsque j\’essai d\’uploadé un fichier. Evidemment erreur 500 apparait dans le swf.

    J\’ai vraiment suivi le tuto avec le mm schema, la seule différence est que j\’utilise propel plutot que doctrine. (j\’ai apporté les modifs).

    Avez-vous une idée pour ces comportement étranges ?

    Merci,
    neothone

    • Article Author
  • olivier

    Mea culpa,

    Il y avait en effet une petite coquille dans le generator.yml
    Le display n’est pas à placer dans « generator/param/config/edit/form/display » mais dans « generator/param/config/edit/display ».
    J’ai apporté la modification au post.

    Pour ce qui est de l’erreur 500. Est ce qu’elle apparait tout le temps ? ou seulement sur un nouveau produit ?

    • Article Author
  • David Maignan

    Merci beaucoup, cela fonctionne a merveille.

    • Article Author
  • Jeremy

    Bonjour!
    Merci pour ce tuto qui m\’a permis de mettre en place dans mon site un uploader pour mes galeries photos.
    Il y a cependant un bug, si je snif le réseau pour connaitre le résultat d\’execution de l\’upload, j\’ai ce message d\’erreur:

    Auriez vous une idées sur la maniere de supprimer ces erreurs ?
    Apparement cela se declenche sur le bind du form.

    Merci beaucoup

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php on line 1114

    Warning: sort() expects parameter 1 to be array, null given in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php on line 1115

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php on line 1114

    Warning: sort() expects parameter 1 to be array, null given in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php on line 1115

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php on line 1114

    Warning: sort() expects parameter 1 to be array, null given in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php on line 1115

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php on line 1114

    Warning: sort() expects parameter 1 to be array, null given in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php on line 1115

    Warning: Cannot modify header information – headers already sent by (output started at /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php:1114) in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/response/sfWebResponse.class.php on line 335

    Warning: Cannot modify header information – headers already sent by (output started at /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/form/sfForm.class.php:1114) in /Users/jeremy/Sites/sfLaura/lib/vendor/symfony/lib/response/sfWebResponse.class.php on line 349
    ok

    • Article Author
  • Mathieu

    Bonjour,

    J’ai suivi toute la démarche et cela fonctionne.
    Toutefois, l’upload créé sur mon serveur des fichiers .bin inexploitable et comme toi, j’ai du retirer le mime_types dans le validateur de mon champs d’upload.

    Je ne sais pas quoi faire. J’ai vérifié que les images étaient bien dans les mime_types de sfCompat10Plugin, j’ai activé ce plugin, mais rien n’y fait.

    Une idée ? svp

    Mathieu

    • Article Author
  • Mathieu

    J’ai trouvé une issue en créant une méthode generate%nameColumn%Filename($file) dans mon Object.php qui permet de sauvegarde le fichier sous le nom que l’on souhaite.

    Pas très propre… mais ça marche.

    • Article Author
  • yanice

    j’ai une question au sujet des méthodes $photo->isDefault(), $produit->getPhotoDefault() et $produit->setPhotoDefaut().
    elles ne sont pas définies et je m’étonne que personne n’en fasse la remarque. il faut bien les ajouter aux classes ProduitPhoto.class.php et Produit.class.php n’est-ce-pas?

    • Article Author
  • olivier

    Salut yanice,

    En effet, il manquait quelques éléments qui ne concernaient pas directement l’explication du fonctionnement de swfUpload mais qui étaient succeptibles d’entraver la compréhension.
    J’ai rajouté les méthodes manquantes.

    Merci de ta participation.

    • Article Author
  • Dimitri

    Bonjour,

    J\’ai suivi le tuto à la lettre et j\’ai quelques soucis.
    Comme matthieu, j\’ai les messaged d\’erreurs en backend_dev.php mais pas en backend.php.
    Les images sont sauvegardés mas avec une extension .bin donc inexploitables.
    Quelqu\’un a t-il une idée?
    Merci

    • Article Author
  • Leny

    Salut Olivier et tout le monde,
    Merci pour ce tutoriel, c’est très sympa de faire profiter les autres de ton expérience.
    J’ai suivi ton tuto et après quelques petites erreurs de copie et quelques modifications pour coller à mon schema de données, ca marche !
    Un super effet, un grand MERCI.
    Leny

    • Article Author
  • Leny

    Salut Olivier et tout le monde,
    Merci pour ce tutoriel, c\’est très sympa de faire profiter les autres de ton expérience.
    J\’ai suivi ton tuto et après quelques petites erreurs de copie et quelques modifications pour coller à mon schema de données, ca marche !
    Un super effet, un grand MERCI.
    Leny

    • Article Author
  • Jean-Paul

    Salut!

    Merci beaucoup pour ce tuto très clair. Je rencontre néanmoins un petit souci au niveau de l’upload. Je teste en local avec Wamp.

    Dans le validateur du formulaire :
    – si je laisse ‘mime_types’ => ‘web_images’, aucune image n’est uploadée et la variable $return retourne ‘ko’
    – si je mets ‘mime_types’ => ‘image/jpeg’, je me prends une erreur 500 par swfupload
    – si je commente la ligne ‘mime_types’, l’upload marche mais l’image a une extension .bin

    Avez vous une idée pour régler ce problème? La réponse de Mathieu (7) a l’air intéressante mais il ne laisse pas sa fonction…

    De plus, lorsque je clique sur supprimer, la photo est supprimée de la base mais pas du répertoire et la page ne s’actualise pas (la photo reste jusqu’à un refresh manuel)

    Merci d’avance!

    • Article Author
  • tamer

    Thank you Olivier for the detailed tutorial.
    I did all of the tutorial but nothing happened, I run Swfupload+Symfony1.4+sfGuard4.0
    I think that the problem is with sfGuard,that it doesn’t pass the session.
    Any help, Please ASAP?????

    • Article Author
  • olivier

    Hi tamer,
    Thank you for reading us, even if we do not translate our posts.
    You said you are using sfGuard it’s looks like you are using Propel. This post was made to work with the Doctrine ORM, there must be some changes to convert it work to Propel.
    If you are not using Propel the problem is maybe that you do not use the right plugin, you should use sfDoctrineGuardPlugin.
    Plus this post is a bit old right now, it was initialy for symfony 1.2 i’ll try to re-write it soon for 1.4
    Best regards.

    • Article Author
  • tamer

    Olivier, Thank you for instant response.
    I took in mind differences between Propel and Doctrine,
    I believe that the problem is with sessions and sfGuard.because in the log file it really go to create action but there’s signout/signin sfGuard log, maybe it doesn’t pass the session of flash.
    Please if you have any idea , it’s urgent to me to solve this problem.

    • Article Author
  • Tatane

    Super tuto,

    j’ai essayé de l’implémenter en adaptant les noms à mes tables, sans succès (il y’a eu un moment ou j’arrivais à uploader, mais en .bin, puis j’ai modifié des trucs et impossible à uploader un fichier ..)

    Du coup j’ai tt recommencé en copier/coller, mêmes modèles, tout pareil et idem impossible d’uploader

    Après recherches et logs il bloque là :

    if ($this->form->isValid())
    {
    $photo = $this->form->save();

    $return = ‘ok’;
    }
    else
    {
    $return = ‘ko’;
    }

    Je ne rentre jamais dans le isValid() …
    et j’avais les mêmes erreurs ds mes logs que Jeremy au commentaire #5 …

    Une idée, là vraiment je m’en sors plus !

    (je débute sf, et je suis en version 1.4 sous wamp)

    merci d’avance pour les éventuelles pistes de debug

    • Article Author
  • netounet

    Merci d’avoir partagé ton expérience en publiant ce tuto très sympathique que j’ai implémenté sous propel.

    Du coup m’a fallut une petite heure pour créer mon plugin de gestion de galeries photos maison 😉

    Fonctionne nickel

    • Article Author
  • netounet

    Merci d\’avoir partagé ton expérience en publiant ce tuto très sympathique que j\’ai implémenté sous propel.

    Du coup m\’a fallut une petite heure pour créer mon plugin de gestion de galeries photos maison 😉

    Fonctionne nickel

    • Article Author
  • fati

    salut ,

    merci pour ce Tuto c’est très sympa et utile .

    j’ai suivi le tuto , mais j’ai rencontré un problème lorsque j’upload une image eu je clique sur save
    voila qu’est ce que donne comme message d’erreur

    « You must either specify the MIME type for file images/produit-defaut.jpg or enable mime detection  »
    Pour info j’ai mis les paramètre ci-dessous dans le fichier app.yml

    sfImageTransformPlugin:
    default_adapter: GD
    default_image:
    mime_type: image/png
    filename: Untitled.png
    mime_type:
    auto_detect: true
    library: gd_mime_type

    • Article Author
  • fati

    salut ,

    merci pour ce Tuto c’est très sympa et utile .

    j’ai suivi le tuto , mais j’ai rencontré un problème lorsque j’upload une image eu je clique sur save
    voila qu’est ce que donne comme message d’erreur

    « You must either specify the MIME type for file images/produit-defaut.jpg or enable mime detection  »
    Pour info j’ai mis les paramètre ci-dessous dans le fichier app.yml

    sfImageTransformPlugin:
    default_adapter: GD
    default_image:
    mime_type: image/png
    filename: Untitled.png
    mime_type:
    auto_detect: true
    library: gd_mime_type

    merci d’avance !!

    • Article Author
  • fati

    salut ,

    merci pour ce Tuto c\’est très sympa et utile .

    j\’ai suivi le tuto , mais j\’ai rencontré un problème lorsque j\’upload une image eu je clique sur save
    voila qu\’est ce que donne comme message d\’erreur

    \"You must either specify the MIME type for file images/produit-defaut.jpg or enable mime detection \"
    Pour info j\’ai mis les paramètre ci-dessous dans le fichier app.yml

    sfImageTransformPlugin:
    default_adapter: GD
    default_image:
    mime_type: image/png
    filename: Untitled.png
    mime_type:
    auto_detect: true
    library: gd_mime_type

    merci d\’avance !!

    • Article Author
  • Mathieu G.

    Je m’ajoute à tout le monde pour remercier Olivier pour ce code…

    Chez moi il ne fonctionne pas très bien… Je l’ai adapté à mon projet de blog afin de lier des images à un billet de blog. Sous l’interface d’admin de rédaction d’un billet j’ai donc en pied de page la petite appli d’upload d’image. Celle-ci semble fonctionner puisque puisque ça me dit « upload complete » seulement je ne vois aucun fichier créé dans le répertoire des images du dossier web…

    Je bosse en local avec symfony 1.4 + doctrine et wamp… Si quelqu’un a la solution à un problème similaire, je suis preneur !

    Merci

    • Article Author
  • Mathieu G.

    Je m\’ajoute à tout le monde pour remercier Olivier pour ce code…

    Chez moi il ne fonctionne pas très bien… Je l\’ai adapté à mon projet de blog afin de lier des images à un billet de blog. Sous l\’interface d\’admin de rédaction d\’un billet j\’ai donc en pied de page la petite appli d\’upload d\’image. Celle-ci semble fonctionner puisque puisque ça me dit \"upload complete\" seulement je ne vois aucun fichier créé dans le répertoire des images du dossier web…

    Je bosse en local avec symfony 1.4 + doctrine et wamp… Si quelqu\’un a la solution à un problème similaire, je suis preneur !

    Merci

    • Article Author
  • Leny

    Bonsoir à tous,
    J’utilisais auparavant ce plugin mais je le trouve trop compliqué à installer, il y a trop de choses à parametrer et puis je n’aime pas le flash.
    C’est pourquoi, je viens de créer un plugin en full javascript permettant de faire toutes les fonctionnalités !
    http://bit.ly/plugin_gallery_multi_ajax_upload
    Une petite façon de vous renvoyer l’ascenceur 😉
    N’hésitez pas à me poser vos questions sur le site.
    à bientôt, et bonne continuation

    • Article Author
  • ali

    où la suppression des photos

    • Article Author

Recevez nos articles