CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 31-10-2008 07:56:47

real34
Cooker
Lieu: Toulouse
Date d'inscription: 28-06-2008
Messages: 1712
Site web

[Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bonjour,

Après avoir noté l'arrivée d'un nouveau comportement pour CakePHP, j'ai enfin eu l'occasion de le tester et je suis totalement bluffé !
Voici enfin le comportement propre et efficace qui permet de gérer les fichiers associés à un modèle sans le stocker en base de données.

Je vous conseille de lire la page http://www.meiocodigo.com/projects/meioupload/ pour voir les détails.

En résumé, voici les étapes nécessaires ... on peut difficilement faire plus simple d'intégration.

1) Avoir un champ "picture" (peut importe le nom tant que cela correspond à la configuration) dans son modèle. Les champs "dir", "mimetype" et "filesize" sont également "automatiques" si on souhaite les inclure.

2) Modifier sont modèle pour inclure le Comportement (les options peuvent être plus ou moins détaillées) :

Code: php

  1. var $actsAs = array(
  2.   'MeioUpload' => array(
  3.     'picture' => array(
  4.       'dir' => 'img{DS}{model}{DS}{field}',
  5.       'create_directory' => true,
  6.       'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
  7.       'allowed_ext' => array('.jpg', '.jpeg', '.png'),
  8.       'thumbsizes' => array(
  9.         'normal' => array('width'=>200, 'height'=>200),
  10.       ),
  11.       'default' => 'default.jpg',
  12.     )
  13.   )
  14. );

3) Inclure un champ image dans le formulaire d'ajout/modif :

Code: php

  1. echo $form->create('Product',array('type' => 'file'));
  2. //[...]
  3. echo $form->input('picture', array('type' => 'file'));

4) Pour supprimer l'image, il suffit de rajouter une checkbox de suppression au formulaire :

Code: php

  1. echo $form->input('Product.picture.remove', array('type' => 'checkbox'));

5) Sauvegarder l'élément de manière habituelle dans le contrôleur ...

Code: php

  1. $this->Product->save($this->data);

Et bien d'autres options, je vous conseille de visiter la page du Comportement. En espérant avoir pu vous rendre service !

Hors ligne

 

#2 03-11-2008 16:52:59

djenvert
Baker
Lieu: Paris
Date d'inscription: 07-07-2008
Messages: 154
Site web

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

ah c'est cool, ça. j'étais en train justement de jeter un oeil à attm, de David Persson.
https://cakeforge.org/projects/attm/
Si je comprends bien ce que ça fait en général, je ne comprends pas trop ce que ça fait dans le détail, et en plus la mise en place implique pas mal de modifications (nouvelle arbo du webroot, remplacement des appels aux helpers standards par d'autres, config à ajouter dans le core), du coup je m'apprêtais à le tester sur une appli toute neuve pour voir. Je vais jeter un oeil à MeioUpload d'abord. Merci Pierre.

Hors ligne

 

#3 01-12-2008 18:34:26

Kalt
Cooker
Lieu: Caen
Date d'inscription: 27-06-2008
Messages: 1191
Site web

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Excellent Behavior ! Enfin une gestion quasi transparente des images associées à un enregistrement.

Par contre j'ai du récrire la méthode createthumb() pour la génération des aperçus, qui n'avait pas l'air d'être plus qu'un brouillon. Au cas où cela intéresse quelqu'un :

Code: php

  1. /**
  2.  * Création d'un aperçu d'image
  3.  *
  4.  * @param $name String Nom du fichier sur le serveur
  5.  * @param $filename String Nom final du fichier
  6.  * @param $new_w Int Largeur en px
  7.  * @param $new_h Int Hauteur en px
  8.  * @param $zc Bool "Zoom crop" (si vrai, découpe le plus grand carré possible au centre de l'image)
  9.  */
  10. function createthumb($name, $filename, $new_w, $new_h, $zc)
  11. {
  12.   App::import('Vendor', 'phpThumb', array('file' => 'phpThumb'.DS.'phpthumb.class.php'));
  13.  
  14.   $phpThumb = new phpThumb();
  15.   $phpThumb->setSourceFilename($name);
  16.   $phpThumb->setParameter('w', $new_w);
  17.   $phpThumb->setParameter('h', $new_h);
  18.   $phpThumb->setParameter('zc', $zc);
  19.  
  20.   $phpThumb->generateThumbnail();
  21.   $phpThumb->RenderToFile($filename));
  22. }

Formation CakePHP : utilisation du framework au jour le jour.

Hors ligne

 

#4 27-05-2009 14:40:15

Zaibon
Fraisier
Date d'inscription: 13-05-2009
Messages: 66
Site web

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

salut a tous.

j'ai un souci avec l'upload, aucun fichier ne s'envoi...je suis en local est ce que ca joue??
et commet afficher les message d'erreur en cas d'erreur de validation??

Dernière modification par Zaibon (27-05-2009 15:03:22)

Hors ligne

 

#5 28-05-2009 17:23:26

matthieusadouni
Cooker
Lieu: Caen
Date d'inscription: 22-08-2008
Messages: 55
Site web

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

j'utilise souvent ce behavior et j'en ai créé une version plugin plus facilement réutilisable :

http://github.com/msadouni/cakephp-meio … ree/master

j'en ai profité pour ajouter la traduction française, la possibilité d'ajouter d'autres traductions et le code de Kalt pour les miniatures avec phpThumb. N'hésitez pas à le forker sur github pour y apporter des modifs.. Je compte prochainement y ajouter des tests pour ensuite nettoyer un peu le code.

Hors ligne

 

#6 01-06-2009 18:43:39

Zaibon
Fraisier
Date d'inscription: 13-05-2009
Messages: 66
Site web

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

apparemment meioupload n'est pas compatible avec la dernière version de cakephp
voir ici dans les commentaires.

il apparait un erreur :  Array to string conversion [CORE/cake/libs/model/datasources/dbo_source.php, line 582]

quelqu'un aurais déja eu ce problème et aurai trouver la solution??

Hors ligne

 

#7 08-06-2009 13:55:06

matthieusadouni
Cooker
Lieu: Caen
Date d'inscription: 22-08-2008
Messages: 55
Site web

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

je l'utilise sans souci avec la dernière version (1.2.3.8166). À quel endroit as-tu l'erreur et comment as-tu déclaré MeioUpload dans le model ?

Hors ligne

 

#8 24-08-2009 00:37:37

vanitom
The Big Cake
Date d'inscription: 21-12-2008
Messages: 270

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bonsoir,

J'aimerai savoir quelqu'un a utiliser de Behavior sur plusieurs modèles.
Car je l'utilise sur plusieurs et j'ai un soucis.

Je l'utilise dans le modèle 'Structure' et 'EpiType'.
Quand je travaille sur le modèle 'Structure' je n'ai pas de soucis mais quand je travaille sur le modèle 'EpiType'. Là j'ai ce message :

Code: php

  1. Notice (8): Undefined index:  Structure [ROOT/models/behaviors/meio_upload.php, line 863]

Quand je cherche un peu, je découvre que le modèle 'Structure' est crée après le modèle 'EpiType'. Existe t'il un lien ? Je pense.

Et quand j'enlève le Behavior du modèle 'Structure' je n'ai plus de soucis.

Une idée su une solution ou une piste.

Voici un peu de code :

Code: php

  1. class EpiType extends AppModel
  2. {
  3.   var $name = 'EpiType';
  4.  
  5.  
  6.   var $actsAs = array (
  7.               'MeioUpload' => array (
  8.                                   'image' => array  (
  9.                                               'dir'       => 'img{DS}_{model}{DS}{field}',
  10.                                               'create_directory'  => true,
  11.                                               'allowedMime'   => array('image/jpeg'),
  12.                                               'allowedExt'    => array('.jpg'),
  13.                                               'default'     => '_unavailable.png',            
  14.                                               'thumbsizes'    => array(
  15.                                                                       'normal' => array (
  16.                                                                           'width'   => 300,
  17.                                                                           'height'  => 300,
  18.                                                                           'far'   => 1,
  19.                                                                           'bg'    => '#FFFFFF',
  20.                                                                           'fltr'    => array  (
  21.                                                                                         'clr|25|00FF0'
  22.                                                                                       )
  23.                                                                         ),
  24.                                                                   ),
  25.  
  26.                                             )
  27.                                 ),
  28.             );

Code: php

  1. class Structure extends AppModel
  2. {
  3.   var $name = 'Structure';  
  4.  
  5.   var $actsAs = array ( 
  6. /*   
  7.               'MeioUpload' => array (
  8.                             'image' => array  (
  9.                                         'dir'       => 'img{DS}_{model}{DS}{field}',
  10.                                         'create_directory'  => true,
  11.                                         'allowedMime'   => array('image/jpeg'),
  12.                                         'allowedExt'    => array('.jpg'),
  13.                                         'default'     => '_default.png',            
  14.                                         'thumbsizes'    => array(
  15.                                                                 'normal' => array (
  16.                                                                     'width'   => 200,
  17.                                                                     'height'  => 250,
  18.                                                                     'far'   => 1,
  19.                                                                     'bg'    => 'FFFFFF',
  20.                                                                   ),
  21.                                                             ),
  22.  
  23.                                       )
  24.                           ),   
  25. */

Merci d'avance

Hors ligne

 

#9 24-08-2009 01:06:22

vanitom
The Big Cake
Date d'inscription: 21-12-2008
Messages: 270

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bon je viens d'avoir une idée pour contourner le problème. Je charge dynamiquement le Behavior lors de l'enregistrement de mon formulaire.
Comme on peut le faire pour le 'Containable'. Et ça fonctionne correctement.

Hors ligne

 

#10 01-12-2009 12:37:59

jpw5060
Crêpe Suzette
Date d'inscription: 09-03-2009
Messages: 7

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bonjour,

Cet excellent behavior m'a permis d'avancer très rapidement dans mon développement en cours, mais j'ai une petite remarque.

Lorsque j'édite l'enregistrement et que je veux recharger un fichier ayant le même nom, il le sauvegarde avec un chiffre additionnel à la fin du nom du fichier et le fichier original est bien enlevé.  Je m'attendais à ce qu'il écrase le fichier existant par le nouveau.

Existe t'il une option permettant de définir si un fichier existant est écrasé par le nouveau.

Merci d'avance.

Hors ligne

 

#11 07-12-2009 22:56:23

Iosis
Brownie
Date d'inscription: 07-12-2009
Messages: 24

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bonsoir.

Je débute avec Cake et j'essaye d'utiliser MeioUpload, je l'ai implémenté selon les instruction à la différence que mes tables "livres" (produits) et "images" sont séparées (liées entre elle par un $hasAndBelongToMany et une table de jointure).

Lorsque je sauvegarde le formulaire pour un nouveau produit (crée grace à $form->create('Livre', array('enctype' => 'multipart/form-data')) et contenant un champ file nommé "data[Image][filename]"), le livre est enregistré grâce à saveAll, mais le fichier n'est pas uploadé, la table de jointure, pas mise à jour et les champs de l'enregistrement de la table "images" sont vides hormis les automagiques et le filename qui a pris sa valeur par défaut...

Je désespère, moi qui croyais que c'était si simple roll

Je transmet volontiers des fragments de code à la demande, au cas ou l'erreur ne sera pas bête et méchante.

Merci de votre aide !


PHP, it's full of script !

Hors ligne

 

#12 07-12-2009 22:58:09

kamui545
Baker
Lieu: Metz, France
Date d'inscription: 14-08-2009
Messages: 1604

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Un bout de code ne mange pas de pain et on y verra déjà plus clair donc oui poste :p

Hors ligne

 

#13 08-12-2009 08:57:03

Kalt
Cooker
Lieu: Caen
Date d'inscription: 27-06-2008
Messages: 1191
Site web

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Pour sauvegarder automatiquement une Habtm, il me semble que tu dois ajouter un numéro dans les champs du modèle joint, ici ton input data[Image][filename] devrait s'appeler data[Image][0][filename], que tu dois pouvoir créer avec $form->input('Image.0.filename'). Ceci dit je ne sais pas si MeioUpload va bien le gérer.

Petite précision :

Code: php

  1. $form->create('Livre', array('type' => 'file'));

est plus concis que :

Code: php

  1. $form->create('Livre', array('enctype' => 'multipart/form-data'));

Formation CakePHP : utilisation du framework au jour le jour.

Hors ligne

 

#14 08-12-2009 11:29:05

Iosis
Brownie
Date d'inscription: 07-12-2009
Messages: 24

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bonjour,

J'ai modifié selon ce que Kalt à préconisé (au cas où), pas de changement... Sinon pour le code:

Modèle Image:

Code: php

  1. var $hasAndBelongsToMany = array(
  2.     'Livre' => array(
  3.       'className' => 'Livre',
  4.       'joinTable' => 'images_livres',
  5.       'foreignKey' => 'image_id',
  6.       'associationForeignKey'  => 'livre_id'
  7.     )
  8.   );
  9.  
  10.   //Upload
  11.   var $actsAs = array(
  12.     'MeioUpload' => array(
  13.       'filename' => array(
  14.         'dir' => 'img{DS}livres',
  15.         'create_directory' => true,
  16.         'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
  17.         'allowed_ext' => array('.jpg', '.jpeg', '.png'),
  18.         'default' => 'empty.jpg',
  19.         'max_size' => '4 Mb',
  20.         'thumbsizes' => array(
  21.           'small'  => array('width'=>100, 'height'=>100),
  22.           'medium' => array('width'=>200, 'height'=>200),
  23.           'large'  => array('width'=>400, 'height'=>300)
  24.         )
  25.       )
  26.     )
  27.   );
  28.  
  29.   //Validation
  30.   var $validate = array(
  31.     'filename' => array(
  32.       'MaxSize' => array(
  33.         'message' => 'Taille maximale 4 Mb'
  34.       ),
  35.       'InvalidMime' => array(
  36.         'message' => 'Type Mime incorrect'
  37.       ),
  38.       'InvalidExt' => array(
  39.         'message' => 'Format de fichier incorrect'
  40.       )
  41.     )
  42.   );

et la fonction de mon contrôleur de livres qui s'occupe du boulot:

Code: php

  1. function add()
  2.   {
  3.     if (!empty($this->data))
  4.     { 
  5.       $this->Livre->create();
  6.      
  7.       //$this->Session->setFlash(__('<pre>'.print_r($this->data,true).'</pre>', true));
  8.    
  9.       $array_auteurs = $this->data['Livre']['auteur_id'];
  10.      
  11.       unset($this->data['Livre']['auteur_id']);
  12.  
  13.       if ($this->Livre->saveAll($this->data) && !empty($array_auteurs))
  14.       {
  15.         //Traitement des données pour les auteurs
  16.         foreach($array_auteurs as $cle => $auteurs)
  17.         {
  18.           $array_auteurs[$cle] = array("livre_id" => $this->Livre->id, "ecrivain_id" => $auteurs);
  19.         }
  20.        
  21.         //Sauvegarde de(s) auteur(s)
  22.         if($this->Livre->Auteur->saveAll($array_auteurs))
  23.         {
  24.           $this->Session->setFlash(__('Le nouveau livre à été sauvegardé', true));
  25.           $this->redirect(array('action'=>'index'));
  26.         }
  27.         else
  28.         {
  29.           $this->Session->setFlash(__('Erreur lors de l\'enregistrement des auteurs, veuillez réessayer.', true));
  30.         }
  31.       }
  32.       else
  33.       {
  34.         $auteur_erreur = (empty($this->data['Livre']['auteur_id']))?__("<br />Aucun(s) auteur(s) sélectionné(s)",true):'';
  35.         $this->Session->setFlash(__('Erreur lors de l\'enregistrement, veuillez réessayer.' . $auteur_erreur, true));
  36.       }
  37.     }
  38.   }

Il est évident que si c'est trop scabreux, je renoncerai à cette table d'images, c'était plus pour l'avenir, lorsque l'envie me prendra de mettre plusieurs images par livre...

Merci pour vos réponses rapides en tout cas ! smile

Dernière modification par Iosis (08-12-2009 12:09:22)


PHP, it's full of script !

Hors ligne

 

#15 12-12-2009 22:21:40

Iosis
Brownie
Date d'inscription: 07-12-2009
Messages: 24

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bien, j'ai finalement résolu le problème en renonçant à cette table images et en renseignant les champs de meioupload dans la table livres, ce qui fonctionne parfaitement.

J'ai ensuite voulu tester le redimensionnement et la création de thumbnails qui fonctionne aussi très bien, mais à tendance à remplir le vide par du blanc. J'ai donc renseigné les tailles que sur une dimension, en l'occurrence pour des livres, la hauteur.

Modèle livres:

Code: php

  1. var $actsAs = array(
  2.   'MeioUpload' => array(
  3.     'image' => array(
  4.       'dir' => 'img{DS}livres',
  5.       'create_directory' => true,
  6.       'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
  7.       'allowed_ext' => array('.jpg', '.jpeg', '.png'),
  8.       'default' => 'empty.jpg',
  9.       'max_size' => '4 Mb',
  10.       'thumbsizes' => array(
  11.         'small'  => array('height'=>100),
  12.         'medium' => array('height'=>200),
  13.         'large'  => array('height'=>400)
  14.       )
  15.     )
  16.   )
  17. );

Cela fonctionne très bien ! L'image n'est redimensionnée qu'en hauteur et n'est pas affublée de deux bandes blanches sur les côtés.
Seulement Meioupload n'a pas l'air de beaucoup apprécier, car il me notifie l'oubli du paramètre width.
Comment pourrais-je me défaire de cette notice ? Y a-t-il une option ? Ou quelqu'un aurait-il eu la même idée ?

Merci !

Dernière modification par Iosis (12-12-2009 22:22:34)


PHP, it's full of script !

Hors ligne

 

#16 13-12-2009 13:46:15

Iosis
Brownie
Date d'inscription: 07-12-2009
Messages: 24

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Oups, je crois que le problème venait de mon image d'origine, c'est bon, plus de problème.


PHP, it's full of script !

Hors ligne

 

#17 12-01-2010 22:07:18

jeanbadel
Fraisier
Lieu: Vignoble Nantais
Date d'inscription: 09-01-2010
Messages: 56

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bonjour à tous, j'ai un petit problème avec la partie 4 de ce petit exemple.

Code: php

  1. echo $form->input('Product.picture.remove', array('type' => 'checkbox'));

Cela est super ça supprimer bien l'image sauf que quand je le rajoute dans mon form par défaut cette checkbox est toujours coché ce qui est un peu embêtant. Ya t'il une solution afin de la décoché par défaut ?

Cordialement Jean-Baptiste.

Hors ligne

 

#18 12-01-2010 22:37:17

real34
Cooker
Lieu: Toulouse
Date d'inscription: 28-06-2008
Messages: 1712
Site web

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Il me semble que les checkbox ne prennent pas de parametre "value" par defaut, donc il te reste 2 solutions :
1 - Fixer une valeur par defaut depuis ton controleur

Code: php

  1. if (empty($this->data) {
  2.    $this->data['Product']['picture']['remove'] = 0;
  3. }

2 - Le faire dans ta vue

Code: php

  1. if (!isset($form->data['Product']['picture']['remove'])) {
  2.    $form->data['Product']['picture']['remove'] = 0;
  3. }

Hors ligne

 

#19 12-01-2010 22:46:05

jeanbadel
Fraisier
Lieu: Vignoble Nantais
Date d'inscription: 09-01-2010
Messages: 56

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Je viens de tester et cela ne marche pas car en effet la valeur par défaut de $form->data['Product']['picture']['remove'] est le nom de l'image à supprimé. Ce que je ne comprend pas c'est que cette checkbox à toujours l'attribue: checked="checked"

Jai essayer de rajouter une option affectant le checked mais cela ne marche pas.
Sinon il va falloir que je passe dans les assistants ce qui serais dommage de faire un mélange des deux...

Cordialement Jean-Baptiste.

Hors ligne

 

#20 05-02-2010 15:29:25

mibs
Baker
Date d'inscription: 11-10-2009
Messages: 220

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Franchement de la balle.
Attention si jamais avec la version 1.3 ça fait une plantée sur la la classe folder.

Pour y remédier il suffit d'ajouter la méthode suivante (qui n'existe plus sous la 1.3) dans le fichier "cake/libs/folder.php"

Code: php

  1. * nix flavored alias
  2.  *
  3.  * @see create
  4.  * @access public
  5.  */
  6.   function mkdir($pathname, $mode = 0755) {
  7.     return $this->create($pathname, $mode);
  8.   }

CakePHP, une approche évolutive
CakePHP Travaux Pratiques : http://www.webbax.ch/blog/

Hors ligne

 

#21 05-02-2010 18:28:44

kamui545
Baker
Lieu: Metz, France
Date d'inscription: 14-08-2009
Messages: 1604

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Yop, merci pour l'astuce.
Par contre à mon avis, il est préférable une mise à jour du Behavior plutôt qu'une modification du coeur de Cake ^^

Hors ligne

 

#22 08-02-2010 09:21:00

mibs
Baker
Date d'inscription: 11-10-2009
Messages: 220

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Mmm je suis bloqué sur la suppression. Comme il n'y a pas de valeur à la checkbox je vois pas pas trop comment lui dire ce qu'il doit supprimer.

Bon alors personnellement je me dis qu'on doit passer l'id (vu que c'est la seule clé unique).
dans la vue, mais il ne se passe rien. Comment vous le faite chez vous ?

Code: php

  1. echo $form->input('Entrepriselogo.picture.remove', array('type' => 'checkbox','value'=>56));

dans le controller

Code: php

  1. if(!empty($this->data)){
  2.             $this->Entreprise->Entrepriselogo->save($this->data);
  3.  }

Bon dans ma table par contre le champ "name" est toujours à null et personnellement je sais pas à quoi il sert vu qu'il y a déjà "picture" c'est peut être le nom du fichier sans l'extension.


CakePHP, une approche évolutive
CakePHP Travaux Pratiques : http://www.webbax.ch/blog/

Hors ligne

 

#23 26-02-2010 14:32:51

mibs
Baker
Date d'inscription: 11-10-2009
Messages: 220

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bon personnellement j'ai pas capté l'histoire de la checkbox qui peut faire supprimer l'image.
J'ai fait autrement, vous balancez l'id du fichier à la checkbox puis on gère la suppression dans le controller.

Code: php

  1. // On se met dans le répertoire pour deleter le fichier
  2.  chdir($req['EntrepriseLogo']['dir']);
  3.  $file = new File($req['EntrepriseLogo']['logo']);
  4.  $file->delete();
  5. // Supprime dans la table
  6. i$this->Entreprise->EntrepriseLogo->delete($id_fichier));

CakePHP, une approche évolutive
CakePHP Travaux Pratiques : http://www.webbax.ch/blog/

Hors ligne

 

#24 26-02-2010 14:36:31

mibs
Baker
Date d'inscription: 11-10-2009
Messages: 220

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Mais pour l'histoire de la miniature.
Chez moi ça marche bien, mais sauf sous "internet explorer" GRRR et uniquement pour les PNG les JPG c'est bon.

J'ai même tenté de rajouter le code Kalt, en ajoutant "phpThumb" dans les vendors mais rien n'y fait.
Vous avez-pas de soucis à ce niveau ?

C'est quand même franchement abusé, j'arrive pas à comprendre comment le traitement des données peut varier selon le naviguateur.


CakePHP, une approche évolutive
CakePHP Travaux Pratiques : http://www.webbax.ch/blog/

Hors ligne

 

#25 03-03-2010 14:44:19

mibs
Baker
Date d'inscription: 11-10-2009
Messages: 220

Re: [Behavior] MeioUpload : la gestion de fichiers enfin simple !

Bon ben pour info vers la ligne 639 il faudrait ajouter x-png sinon le traitement ne se fera pas et typiquement on trouve pas mal de logo en ce format. ( dans mon cas ou je faisais un test avec le logo de Google qui bien sur n'était pas un png simple, lol quel manque de bol)

L'extension de fichier est toujours .png, c'est le mime qui est différent donc c'est un peu plus subtile.

Code: php

  1. if (count($options['allowed_ext']) > 0 && in_array($model->data[$model->name][$fieldName]['type'], array('image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png')))

Dernière modification par mibs (03-03-2010 14:45:24)


CakePHP, une approche évolutive
CakePHP Travaux Pratiques : http://www.webbax.ch/blog/

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr