IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

comment traiter mes images avec form ?


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut comment traiter mes images avec form ?
    Bonjour a tous, , j'aurai besoin d'un coup de main pour crée mon affichage de présentation de voiture pour la partie saisie d'image, mais je ne sais pas comment m'y prendre car j'ai plusieurs chose qui me bloque.

    Pour ce soit plus claire, voici ce que je devrais avoir sur l'écran



    j'ai pu trouver comment sauvegarder mes 5 images + quelque infos, tous ce qui est css je me débrouillerais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     
            $this->addElement('text', 'modele', array(
                'label' => 'Modele de la voiture',
                'required' => true,
            ));
     
            $this->addElement('text', 'nombre de porte', array(
                'label' => 'nombre de porte',
                'required' => true,
            ));
     
            $this->addElement('text', 'couleur', array(
                'label' => 'couleur',
                'required' => true,
            ));
     
     
        $element = new Zend_Form_Element_File('mon_image');
        $element->setLabel('Uploadez une image:')
                ->setDestination('../public/image/temp_image');
        // s'assure qu'il y a un fichier au minimum, 3 au maximum
        $element->addValidator('Count', false, array('min' => 5, 'max' => 5));
        // Limite à 100K
        $element->addValidator('Size', false, 102400);
        // seulement des JPEG, PNG, et des GIF
        $element->addValidator('Extension', false, 'jpg,png,gif');
        // définit 3 éléments fichiers identiques
        $element->setMultiFile(5); //demande de sauvegarder 5 images
     $this->addElement($element, 'mon_image');
    on va dire que j'ai 3 type d'images:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1:
        1 image de presentation en vert on a dire qu'elle fait (500x600)px
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    2 :  
         4 image miniature (50x60)px
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    3: 
         4 grande image qui correspond au 4 miniatures
         ces images on  la voit seulement si on clique sur son thunbail (1024*768)
    j'enregistre le nom de ces images dans une base de donnée avec 5 champs pour 5 images

    question 1 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comment je peux gérérer la taille des mes images
    moi je pensais enregistrer mes 5 images au format le plus grand (1024*768).
    par la suite je modifierais dans mon controlller la taille des mes 5 images.


    question 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comment je gère l'emplacement des mes 5 images ??
    je pensais dans mon dossier plublic/image/

    crée 4 dossiers
    1 : -un dossier "temp_image", c'est un dossier ou je stockerai tous les
    images uplaoder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                ->setDestination('../public/image/temp');

    2: -un dossier "moyen", on y met les images de présentation (en vert)
    3- un dossier "mini" , on y met les images miniature cliquable(en jaune)
    4: un dossier "grand" on n y met les images brut uploader(en rose)

    j'aurai voulu ranger directement mes images dans leurs dossier respectif, mais je ne sais vraiment pas comment faire car on appelle q'une seul fois "setdestination()" , il en fraudrait 5 pour mettre les 5 chemin, en plus je pense qu'il faudrai changer le nom des ces images

    j'en ai d'autre des questions , mais il faut d'abord traiter celle-ci pour avancer

    je vos remercie beaucoup de vos coup de pouce

  2. #2
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Au vue de toutes tes questions, je penses que tu ne lis pas suffisamment la documentation de zend qui est pourtant trés claire et trés fournis.

    En suite il existe pas mal de tutoriel pour commencer à apprendre Zend suffit de rechercher sur google d'ailleurs beaucoup sont sur ce site.

    En suite, en informatique il faut savoir chercher un peu par ses propres moyens et essayé et ne pas venir au moindre problème sans tenter des solutions, car j'ai remarqué que tu pose des questions avant même d'essayer de ton coté.

    Il faut également faire attention car tes questions ne concerne pas vraiment Zend mais des méthodes de développement de base.

    Sinon stockes tu tes tailles d'images en BDD

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci de ton aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    En suite, en informatique il faut savoir chercher un peu par ses propres moyens et essayé et ne pas venir au moindre problème sans tenter des solutions, car j'ai remarqué que tu pose des questions avant même d'essayer de ton coté.
    c'est ce que je suis entraint d'essayer , mais je ne trouve pas ce qu'il me fait, j'ai le tuto de developpez sur debuter zend1.10 + la doc +guide de référence du programmeur + le site framework zend . je ne trouve pas la bonne methode. ou je ne trouve pas sur la bonne page.
    De toute façon je sais que ce n'es pas suffiant, mais je continerais à lire d'autre doc.

    Sinon ma question est pour le moment d'ordre conception.
    En gros est ce une bonne idée de faire un dossier temporaire et ensuite par (les fontions php, si je trouve pas avec les methode zend) copier coller les images dans leurs dossier respectif, je pense que enregister le nom et l'image en même temps à la voler c'est plus difficile a mettre en oeuvre, mais je peux me tromper.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sinon stockes tu tes tailles d'images en BDD
    non je ne stock que les nom des image par exemple, j'impose que 3 taille d'image, je redimensionne obligatoirement les images
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    table image
    -------------------------------------------------------
    image_0 | image1_gros|image2_gros|image3_gros|image4_gros|image1_gros|image1_petit|image2_petite|image3_petit|image_4petit|
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    im0.jpg--|img1g.jpg--|img2g.jpg--|img3g.jpg--|img4g.jpg--|img5g.jpg--|image1p.jpg|image2p.jpg--|image3p.jpg-|image4p.jpg|
    donc en gros je récupère les 5 images en taille réelle , leurs nom de fichiers seront mis dans les champs image*_gros et je copie ces 5 images brut dans le dossier image/gros,
    puis je reprend les 4 images je les rétrécie par (une methode de zend ou de php que, mais j'en suis pas encore là) j'enregistre leur nom de fichier des les champs image*_petit et je copie les fichers dans le dossier image/mini

  4. #4
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Pourquoi désire tu modifier la taille de tes images en php ? Alors qu'il te suffit de css avec width et height cela te suffit

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    au début je voulais me servir du css, mais ca va faire ramer le serveur ?

    imaginons que les 4 images font 1Mo,
    cela fait 4Mo (4miniature + 4 grosse + 1 pour la présentation) d'image à charger ? c'est peut être trop lourd pour 1 seul voiture si il y en a 10 ?
    en plus qui s'occupe de "miniaturiser" l'image ?? c'est le serveur ou c'est le client si je fait (css : width:50px; height :50px ??

    sinon j'en suis qu'a l'enregistrement des formulaire image,
    comment je ne sais pas préremplire le nom du ficher (trouver la bonne methode de Zend) ,j'ai juste utliser ce system, par contre ça ne fait pas zend mais plutôt procedural nom objet , ca fonctionne quand même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
        //===================chargement des images===========
            $element = new Zend_Form_Element_File('mon_image');
            $element->setLabel('Uploadez une image:')
                    ->setDestination('../public/image/img_tmp/');
            // s'assure qu'il y a un fichier au minimum, 3 au maximum
            $element->addValidator('Count', false, array('min' => 1, 'max' => 5));
            // Limite à 100K
            $element->addValidator('Size', false, 102400);
            // seulement des JPEG, PNG, et des GIF
            $element->addValidator('Extension', false, 'jpg');
            // définit 3 éléments fichiers identiques
            $element->setMultiFile(5);
            $this->addElement($element, 'mon_image');
     
            $upload = $element->getValue('mon_image');
     
                  $this->image_ok= $this->traiterImage($upload); //récupération tous les les résultats des fichiers images
     
     
            // print_r($file_img_traiter);
        //   var_dump($img_ok);
            // =============bouton envoyer validation====================
            $this->addElement('submit', 'submit', array(
                'ignore' => true,
                'label' => 'Envoyer',
            ));
        }
     
     
        public function traiterImage($upload) {  // $element->getValue('mon_image') les éléements uploader
            //=========================traitement des 5 images
            $nb_image = count($upload); //vérfie le nombre d'image
     
            if ($nb_image == 1) { //si il y qu'une seul image on traite l'image sion la sortie n'est pas un array il y aura une erreur d'index introuvable
                echo "image principal ajouter";
                $image_a_traiter[0] = $upload;
                $image_a_traiter[1] = "nc.jpg";
                $image_a_traiter[2] = "nc.jpg";
                $image_a_traiter[3] = "nc.jpg";
                $image_a_traiter[4] = "nc.jpg";
                        return $image_a_traiter;
            }
     
            if ($nb_image >= 2) { //il faut qu'il y ai un minimum de 2 images pour former un array
                echo "<h1>on rentre dans la boucle</h1>";
                foreach ($upload as $resultat) {
                    $image_a_traiter[] = $resultat;
                }
                // echo $image_a_traiter[1];
                // echo $image_a_traiter[0];
                if ($add_img = 5 - $nb_image) { //on calcul le nombre d'image a jouter par defaut nc.jpg
                    for ($i = $nb_image; $i < 5; $i++) {
                        $image_a_traiter[$i] = "nc.jpg";
                    }
                }
                        return $image_a_traiter;
            } else {
     
                echo "<h1>Une image est obligatoire</h1>";
            }
        }
    mon but était que si la personne ne charge pas les 5 images je remplaces des image par defaut nc.jpg.
    comme ça j'ai obligatoirement 5 nom de fichier image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    106.jpg//on a uploader l'image
    103.jpg//on a uploader l'image
    nc.jpg//on n'a pas uploader
    nc.jpg//on n'a pas uploader
    nc.jpg//on n'a pas uploader

Discussions similaires

  1. [C#][Débutant] Comment présenter des images sous forme de vignettes
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 8
    Dernier message: 16/05/2006, 15h47
  2. [CF][C#] Comment optimiser mes requêtes avec SqlCE ?
    Par david71 dans le forum Windows Mobile
    Réponses: 10
    Dernier message: 20/01/2006, 14h48
  3. Réponses: 4
    Dernier message: 26/09/2005, 14h27
  4. comment créer une image sous forme d'eclipse(ronde)
    Par unix27 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/05/2005, 22h16
  5. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo