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

Langage PHP Discussion :

insertion et affichage photo


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut insertion et affichage photo
    Bonjour, je veut insérer une photo dans ma base de données et l'afficher mais j'y arrive pas avec les codes ke j'utilise

    voici pour la récupération de la photo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $tmp_file = $_FILES['photo']['tmp_name'];
                $filename = stripslashes($_FILES['photo']['name']);
      			$extension = getExtension($filename);
                $name_file=$_POST['no_dossier']."_".date('d_m_Y_H_i_s').".".$extension;
                $destFichierChemin=PERSONNE_IMAGE_UPLOAD_DIRECTORY.$name_file;
     
    			move_uploaded_file($temp_file, $destFichierChemin);
    pour l'insertion dans la base de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $ret = "UPDATE personne SET photo = '".$temp_file."' WHERE no_formulaire = LAST_INSERT_ID()";
     
    mysql_query($ret,$connect) or die(mysql_error());
    et pour l'affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><div align="left"><?php echo $row_Recordset1['photo']; ?></div></td>
    l'affichage se passe sur une autre page après avoir valider l'insertion des données de la personne.
    merci de votre aide.

  2. #2
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Ta photo s'insère t-elle dans ta base e données ?
    Sinon, débug en faisant des echo ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo $name_file;
    echo $tmp_file;
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    ya rien qui s'affiche par contre sur la page d'affichage sur la colonne photo ya plein de caractère bizarre qui s'affiche.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu t'es trompé dans la requête : c'est le NOM de la photo qu'il faut enregistrer :
    (PS : le champ en base de données doit être de type VARCHAR, et pas BLOB)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ret = "UPDATE personne SET photo = '".$name_file."' WHERE no_formulaire = LAST_INSERT_ID()";
    Et pour l'affichage (c'est bien une image ?) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <td>
    <?php 
    if (is_file(PERSONNE_IMAGE_UPLOAD_DIRECTORY.$row_Recordset1['photo']){ 
    ?>
    	<img src="<?php echo PERSONNE_IMAGE_UPLOAD_DIRECTORY.$row_Recordset1['photo']; ?>" alt="" />
    <?php 
    } else {
    ?>
    	pas de photo
    <?php 
    }
    ?>
    </td>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    j'ai enregistrer comme vous l'avez dit mais sa affiche pas de photo alors que dans la base l'insertion est présente.
    mais cet méthode d’insérer le nom au lieu de la photo est elle recommander dans mon le cas ou mon application sera héberger sur un serveur et d'autre personne devront saisir des données(données user+photo) a partir de poste client...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Oui, c'est la bonne méthode.

    Si la photo ne s'affiche pas : il faut vérifier si le chemin est bon (dans src="...")

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    voici mon chemin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="<?php echo PERSONNE_IMAGE_UPLOAD_DIRECTORY.$row_Recordset1['photo']; ?>" alt="C:\Users\user\Pictures\jo" />

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    l'affichage de la photo marche mais pour le redimensionnement automatique j'ai pris quelque sur un site cette fonction mais je c pas vraiment comment l'utiliser.

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    function fctredimimage($W_max, $H_max, $rep_Dst, $img_Dst, $rep_Src, $img_Src) {
     // --------------------------
     $condition = 0;
     // Si certains parametres ont pour valeur '' :
     if ($rep_Dst == '') { $rep_Dst = $rep_Src; } // (meme repertoire)
     if ($img_Dst == '') { $img_Dst = $img_Src; } // (meme nom)
     // --------------------------
     // si le fichier existe dans le répertoire, on continue...
     if (file_exists($rep_Src.$img_Src) && ($W_max!=0 || $H_max!=0)) { 
       // --------------------------------------------------
       // extensions acceptees : 
       $FILE_EXTENSION_PHOTO = '" jpg jpeg png"'; // (l espace avant jpg est important)
       // extension fichier Source
       $tabimage = explode('.',$img_Src);
       $extension = $tabimage[sizeof($tabimage)-1]; // dernier element
       $extension = strtolower($extension); // on met en minuscule
       // --------------------------------------------------
       // extension OK ? on continue ...
       if (strpos($FILE_EXTENSION_PHOTO,$extension) != '') {
          // -----------------------------------------------
          // recuperation des dimensions de l image Src
          $img_size = getimagesize($rep_Src.$img_Src);
          $W_Src = $img_size[0]; // largeur
          $H_Src = $img_size[1]; // hauteur
          // -----------------------------------------------
          // condition de redimensionnement et dimensions de l image finale
          // -----------------------------------------------
          // A- LARGEUR ET HAUTEUR maxi fixes
          if ($W_max != 0 && $H_max != 0) {
             $ratiox = $W_Src / $W_max; // ratio en largeur
             $ratioy = $H_Src / $H_max; // ratio en hauteur
             $ratio = max($ratiox,$ratioy); // le plus grand
             $W = $W_Src/$ratio;
             $H = $H_Src/$ratio;   
             $condition = ($W_Src>$W) || ($W_Src>$H); // 1 si vrai (true)
          }
          // -----------------------------------------------
          // B- HAUTEUR maxi fixe
          if ($W_max == 0 && $H_max != 0) {
             $H = $H_max;
             $W = $H * ($W_Src / $H_Src);
             $condition = ($H_Src > $H_max); // 1 si vrai (true)
          }
          // -----------------------------------------------
          // C- LARGEUR maxi fixe
          if ($W_max != 0 && $H_max == 0) {
             $W = $W_max;
             $H = $W * ($H_Src / $W_Src);         
             $condition = ($W_Src > $W_max); // 1 si vrai (true)
          }
          // -----------------------------------------------
          // REDIMENSIONNEMENT si la condition est vraie
          // -----------------------------------------------
         // Si l'image Source est plus petite que les dimensions indiquees :
          // Par defaut : PAS de redimensionnement.
         // Mais on peut "forcer" le redimensionnement en ajoutant ici :
         // $condition = 1; (risque de perte de qualite)
          // -----------------------------------------------
          if ($condition == 1) {
             // --------------------------------------------
             // creation de la ressource-image "Src" en fonction de l extension
             switch($extension) {
             case 'jpg':
             case 'jpeg':
               $Ress_Src = imagecreatefromjpeg($rep_Src.$img_Src);
               break;
             case 'png':
               $Ress_Src = imagecreatefrompng($rep_Src.$img_Src);
               break;
             }
             // --------------------------------------------
             // creation d une ressource-image "Dst" aux dimensions finales
             // fond noir (par defaut)
             switch($extension) {
             case 'jpg':
             case 'jpeg':
               $Ress_Dst = imagecreatetruecolor($W,$H);
               break;
             case 'png':
               $Ress_Dst = imagecreatetruecolor($W,$H);
               // fond transparent (pour les png avec transparence)
               imagesavealpha($Ress_Dst, true);
               $trans_color = imagecolorallocatealpha($Ress_Dst, 0, 0, 0, 127);
               imagefill($Ress_Dst, 0, 0, $trans_color);
               break;
             }
             // --------------------------------------------
             // REDIMENSIONNEMENT (copie, redimensionne, re-echantillonne)
             imagecopyresampled($Ress_Dst, $Ress_Src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src); 
             // --------------------------------------------
             // ENREGISTREMENT dans le repertoire (avec la fonction appropriee)
             switch ($extension) { 
             case 'jpg':
             case 'jpeg':
               imagejpeg ($Ress_Dst, $rep_Dst.$img_Dst);
               break;
             case 'png':
               imagepng ($Ress_Dst, $rep_Dst.$img_Dst);
               break;
             }
             // --------------------------------------------
             // liberation des ressources-image
             imagedestroy ($Ress_Src);
             imagedestroy ($Ress_Dst);
          }
          // -----------------------------------------------
       }
     }

  9. #9
    Invité
    Invité(e)
    Par défaut
    Tu parles ici de... MA fonction !
    => Fonctions de redimensionnement d'images
    Et plus précisément : Redimensionnement physique "proportionnel"

    Le fonctionnement est expliqué.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    ha quelle coincidence en effet c tres bien expliquer mais c cette partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $newsPhotoLargeur = $_POST['newsPhotoLargeur']; // on recupere la largeur souhaitee de l image
    la variable $_POST['newsPhotoLargeur'] qui correspond a $W_max je doit mettre en pixel une valeur que veut ???
    et pour $H_max

  11. #11
    Invité
    Invité(e)
    Par défaut
    Explication :
    Les paramètres :
    - $W_max : LARGEUR maxi finale --> ou 0
    - $H_max : HAUTEUR maxi finale --> ou 0
    - $rep_Dst : répertoire de l'image de destination (déprotégé) --> ou ''
    - $img_Dst : NOM de l'image de destination --> ou ''
    - $rep_Src : répertoire de l'image source (déprotégé)
    - $img_Src : NOM de l'image source

    Les 3 options
    A- si $W_max != 0 et $H_max != 0 --> à a LARGEUR maxi ET HAUTEUR maxi fixes
    B- si $H_max != 0 et $W_max == 0 --> à HAUTEUR maxi fixe (largeur auto)
    C- si $W_max == 0 et $H_max != 0 --> à LARGEUR maxi fixe (hauteur auto)
    Largeur et hauteur sont en pixels.

    Option A : on impose largeur ET hauteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $redimOK = fctredimimage(120,80,'reppicto/','monpicto.jpg','repimage/','monimage.jpg');
    Option B : on impose la hauteur (et on laisse la largeur libre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $redimOK = fctredimimage(0,80,'reppicto/','monpicto.jpg','repimage/','monimage.jpg');
    Option C : on impose la largeur (et on laisse la hauteur libre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $redimOK = fctredimimage(120,0,'reppicto/','monpicto.jpg','repimage/','monimage.jpg');

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    voila ce ke j'ai mis dans le fichier d'insertion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     $tmp_file = $_FILES['photo']['tmp_name'];
               $filename = stripslashes($_FILES['photo']['name']);
    		   $extension = getExtension($filename);
               $name_file=$_POST['no_dossier']."_".$extension;
               $destFichierChemin = PERSONNE_IMAGE_UPLOAD_DIRECTORY.$name_file;
    		   move_uploaded_file($tmp_file, $destFichierChemin);
    		   $redimOK = fctredimimage(120,80,'','',PERSONNE_IMAGE_UPLOAD_DIRECTORY,$name_file);
     
    	$ret = "UPDATE personne SET photo = '".$name_file."' WHERE no_formulaire = LAST_INSERT_ID()";
     
    mysql_query($ret,$connect) or die(mysql_error());
    mais sa ne marche pas

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par paco503 Voir le message
    mais sa ne marche pas
    C'est un peu "juste" pour comprendre ce qui ne va pas ...

    Ajoute des echo :
    Code php : 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
    $tmp_file = $_FILES['photo']['tmp_name'];
    $filename = stripslashes($_FILES['photo']['name']);
    $extension = getExtension($filename);
    $name_file = $_POST['no_dossier']."_".$extension;
     
    // enregistrement de la photo dna sle dossier
    move_uploaded_file($tmp_file, PERSONNE_IMAGE_UPLOAD_DIRECTORY.$name_file);
     
    echo 'fichier "'.$name_file.'" Enregistrée dans le dossier "'.PERSONNE_IMAGE_UPLOAD_DIRECTORY.'"<br />';
     
    // redimensionnement (taille maxi : 120 x 80 px)
    $redimOK = fctredimimage(120,80,'','',PERSONNE_IMAGE_UPLOAD_DIRECTORY,$name_file);
     
    if($redimOK==1) { echo 'Photo redimensionnée<br />'; }
    else { echo 'Photo PAS redimensionnée !<br />'; }
     
    // enregistrement du nom dans la BdD
    $ret = "UPDATE personne SET photo = '".$name_file."' WHERE no_formulaire = LAST_INSERT_ID()";
    mysql_query($ret,$connect) or die(mysql_error());

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    excuser du retard et merci beaucoup sa marche, mais quand j’insère pour un utilisateur et je veut insérer pour un autre la dernier photo que j'ai insérer remplace toute les autres.

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par paco503 Voir le message
    excuser du retard et merci beaucoup sa marche, mais quand j’insère pour un utilisateur et je veut insérer pour un autre la dernier photo que j'ai insérer remplace toute les autres.
    Sur le serveur ou dans la bdd ?

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    j'ai vérifier dans la base mais les valeur de la colonne photo son toute a"_JPG"
    alors que dans le script j les ai précédé de no_dossier et dans l'application php aussi a l'affichage des personnes c la même photo pour tout le monde.

    PS: le script d'insertion des personnes et upload de la photo sont sur un même fichier.
    en voici une partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      $tmp_file = $_FILES['photo']['tmp_name'];
               $filename = stripslashes($_FILES['photo']['name']);
    		   $extension = getExtension($filename);
               $name_file=$_POST['no_dossier_RP']."_".$extension;
               //$destFichierChemin = PERSONNE_IMAGE_UPLOAD_DIRECTORY.$name_file;
    		   move_uploaded_file($tmp_file, PERSONNE_IMAGE_UPLOAD_DIRECTORY.$name_file);
    		 $ret = "UPDATE personne SET photo = '".$name_file."' WHERE no_formulaire = LAST_INSERT_ID()";
     
    mysql_query($ret,$connect) or die(mysql_error());
    le script d'insertion des personnes se trouvent au dessus de ce script dans ce fichier.

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    C'est sans doute que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $name_file=$_POST['no_dossier_RP']."_".$extension;
    renvoies toujours la même valeur. Il faut contrôler ta variable $_POST['no_dossier_RP'] et savoir pourquoi elle est de valeur constante.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Mai 2009
    Messages : 131
    Points : 43
    Points
    43
    Par défaut
    merci c réglé, au niveau de l'etat généré par php la photo ne s'affiche voici un bout de code
    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
     
    <table cellpadding=0 cellspacing=0>
     <tr>
      <td width=192 height=39 bgcolor=white style='vertical-align:top;background:
      white'><![endif]><![if !mso]><span style='position:absolute;mso-ignore:vglayout;
      z-index:2'>
      <table cellpadding=0 cellspacing=0 width='100%'>
       <tr>
        <td><![endif]>
        <div v:shape='_x0000_s1043' style='padding:3.6pt 7.2pt 3.6pt 7.2pt'
        class=shape>
        <p class=MsoNormal><span style='mso-bidi-font-family:Calibri;color:black'><b>Photo</b>&nbsp;:
        ".$row_rsPerson["photo"]." </span></p>
        </div>
        <![if !mso]></td>
       </tr>
      </table>
      </span><![endif]><![if !mso & !vml]>&nbsp;<![endif]><![if !vml]></td>
     </tr>
    </table>

Discussions similaires

  1. [MySQL] Affichage photo - lenteur
    Par hel22 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/09/2006, 18h13
  2. affichage photo avec chemin d'accès
    Par julio02200 dans le forum Access
    Réponses: 7
    Dernier message: 21/06/2006, 16h10
  3. [Configuration] probleme avec affichage photo
    Par arti2004 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 17/06/2006, 23h23
  4. Affichage photo répertoire
    Par le69 dans le forum Langage
    Réponses: 11
    Dernier message: 19/04/2006, 20h40
  5. [FLASH 8] Pbm affichage photos
    Par fab22montpellier dans le forum Flash
    Réponses: 1
    Dernier message: 30/11/2005, 11h42

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