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

PHP & Base de données Discussion :

afficher une image a partir d'un champs blob


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut afficher une image a partir d'un champs blob
    Bonjours,
    J'ai un petit problème, je stock des photos dans un champs blob de ma table et je n'arrive pas a les afficher.

    voici ma table:
    CREATE TABLE `ploopi_mod_annuaire_photo` (
    `id_photo` INT NOT NULL AUTO_INCREMENT ,
    `nom` VARCHAR(50) NOT NULL ,
    `desc` VARCHAR(100) NOT NULL ,
    `photo` BLOB NOT NULL ,
    `type` VARCHAR(25) NOT NULL ,
    PRIMARY KEY (`id_img`)
    )

    que je remplis comme il suit :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <html>
    <head>
       <title>Envoyer une image</title>
    </head>
    <body>
       <h1>Envoyer une photo</h1>
       <form enctype="multipart/form-data" action="traitement.php" method="post">
          <input type="text" name="nom" size="50" />
          <input type="text" name="desc" size="100" />
          <input type="file" name="photo" />
          <input type="submit" name="validation" value="Envoyer" />
       </form>
    </body>
    </html>

    traitement.php:
    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
    20
    21
    22
    23
    24
    25
    26
    <?php
          if(isset($_POST['validation'])) {         
             if(!is_uploaded_file($_FILES['photo']['tmp_name'])) {
                echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
             } else {                
                $extensions = array('.png', '.gif', '.jpg', '.jpeg');            
                $extension = strrchr($_FILES['photo']['name'], '.');                      
                if(!in_array($extension, $extensions)) {
                    echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
                } else {                   
                    define('MAXSIZE', 300000);        
                    if($_FILES['image']['size'] > MAXSIZE) {
                       echo 'Votre image est supérieure à la taille maximale de '.$maxtaille.' octets';
                    } else {
                        //on se connecte 
                        $connexion = mysql_connect("localhost", "stagiaire", "stagiaire") or die (mysql_error());
                        $database = mysql_select_db("stagiaire2") or die (mysql_error());                   
                        $photo = mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));                    
                        mysql_query("INSERT INTO ploopi_mod_annuaire_photo VALUES('', '".$_POST[nom]."', '".$_POST[desc]."', '".$photo."', '".$_FILES[photo][type]."')") or die (mysql_error());
                        mysql_close();
                        echo 'L insertion s est bien déroulée !';
                     }
                  }
              }
          }
       ?>
    Jusque la pas de soucis les photo sont bien enregistré dans la base par contre impossible de les afficher, voici mon code pour l'affichage:

    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
    <?php 
     
    if(isset($_GET['id_photo'])) {
     
           $connexion = mysql_connect("localhost", "stagiaire", "stagiaire") or die (mysql_error());
           $database = mysql_select_db("stagiaire2")or die (mysql_error()); 
           $apercu = mysql_query("SELECT id_photo, type, photo FROM ploopi_mod_annuaire_photo WHERE id_photo =1");
           $reponse = mysql_fetch_assoc($apercu);
           if(!$reponse[id_photo]) {
              echo 'L image n existe pas !';
           } else {
              header ("Content-type: ".$reponse[type]);
              echo $reponse[photo];
           }
        } else {
           echo 'Vous n avez pas sélectionné d image !';
        }
    ?>

    dans ma requête je l'oblige a chercher la photo stocké a l'id 1, pour tester. Et malgré cela il me resoort a chaque fois que je n'ai aps d'image sélectionné.(le dernière echo)

    j'utilise des lien dans un premier temps pour visualiser les photos :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     
        $affichage = mysql_query("SELECT id_photo, nom  FROM ploopi_mod_annuaire_photo") or die (mysql_error ());
        while($result = mysql_fetch_array($affichage)) {
            echo '<a href="affiche.php?id='.$result[id_photo].'">'.$result[nom].'</a>';
        }
     
    ?>

    Et comme dit précédement les liens me renvoie a chaque fois vers le message :"Vous n avez pas sélectionné d image !".

    Donc si une personne aurais la solution.
    Merci.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Dans ton lien tu passes la variable id (ça serait mieux avec des quotes au passage)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="affiche.php?id='.$result['id_photo'].'">'.$result['nom'].'</a>';
    et tu cherche à tester id_photo dans affiche.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET['id_photo'])) {
    M'est avis qu'il ya un cafouillage quelque part

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Effectivement, merci beaucoup pour ton aide.
    Mais j'ai un autre problème un peut toujours la dessus, je sais que je fais des erreur bête mais c'est pas faute de chercher ou d'essayer.
    J'arrive donc a afficher mes photo maintenant en le forçant dans ma requête en métant un numéro d'utilistaeur dont je sais qu'il a une photo du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, id_photo, type, photo, id_abo FROM ploopi_mod_annuaire_photo p,ploopi_mod_annuaire a  WHERE p.id_abo=a.id AND id_abo=22
    Mais ce que je voudrais bien sur c'est n'afficher que quand il y a une photo et la bonne photo par membre.

    je récupère donc dans un autre fichier l'abonné sélectionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $abo=$_GET['user_id'];
    include './affiche.php';
    et je remplace le 22 par : .$abo

    et la quand je vais sur un utilisateur qui n'a pas de photo il m'affiche bien qu'il n'y a pas de photo existante (cf affiche.php)

    par contre quand j'essaye de visualiser un abonné qui a une photo il me ressort une page blanche avec l'adresse même de cette page.

    Problème d'affichage je suppose, mais je n'arrive pas a comprendre pourquoi, sachant que quand je lui indique un id_abo en dur il affiche très bien.

    Surement une erreur bête encore ... mais que je ne vois pas.

Discussions similaires

  1. afficher une image a partir d'un champ Blob
    Par aimer_Delphi dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/07/2011, 15h31
  2. Réponses: 7
    Dernier message: 02/10/2010, 21h42
  3. Afficher une image a partir de lien.
    Par Didibzh dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 11/06/2007, 17h31
  4. Réponses: 6
    Dernier message: 12/02/2007, 18h27
  5. Afficher une image SVG à partir du Java
    Par choumane dans le forum Multimédia
    Réponses: 3
    Dernier message: 03/12/2006, 19h52

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