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 :

Récupérer une image depuis phpMyAdmin [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 112
    Par défaut Récupérer une image depuis phpMyAdmin
    Bonsoir,

    je voudrais savoir où sont les erreurs dans le code suivant pour afficher une image dans mon site web.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    <?php
    mysql_connect("localhost","root","");
    mysql_select_db("family_tree");
    $image = stripslashes($_REQUEST["name"]);
    $rs = mysql_query("select * from uploads where name=\"".
            addslashes($image).".png\"");
    $row = mysql_fetch_assoc($rs);
    $imagebytes = $row[content];
    header("Content-type: image/jpeg");
    print $imagebytes;
    ?>

    ce code - là m'affiche uniquement le lien vers l'image.



    Merci d'avance.

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Bonjour,

    Je n'ai pas saisi où était le problème...

    Si tu as le lien, tu l'affiches avec une balise HTML img.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="<?php echo $imagebytes;?>" alt="uneImage" />
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 112
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Bonjour,

    Je n'ai pas saisi où était le problème...

    Si tu as le lien, tu l'affiches avec une balise HTML img.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="<?php echo $imagebytes;?>" alt="uneImage" />
    Bonjour

    en faite le probleme c'est que je ne parviens pas a afficher la page html avec la photo.
    au lieu d'afficher la page, le navigateur affiche juste un lien URL.

    Merci.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut
    dans ta base, tu stockes l'url de l'image ou l'image elle meme ?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 112
    Par défaut
    Citation Envoyé par zevince Voir le message
    dans ta base, tu stockes l'url de l'image ou l'image elle meme ?
    Bonjour,

    dans ma base de données il ya une table pour les photos avec les colonnes suivantes

    id
    name
    size
    content (la photo)
    j'ai déjà construit le code pour insérer une image dans la base de données.

    *voilà ce que la page après l'exécution de la requête


  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonsoir Bonomsoleil,

    Le lien que tu nous montre vise un fichier stocké sur ton ordinateur, innaccesible depuis internet.

    Tu pourrais à la limite nous montrer une impression écran de ta base de données afin que nous voyons ce que contiens le champ content. Il peut contenir deux types d'informations :
    • L'url relative ou absolue de l'image précédemment envoyé sur le serveur
    • une image au format BLOB

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 112
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Bonsoir Bonomsoleil,

    Le lien que tu nous montre vise un fichier stocké sur ton ordinateur, innaccesible depuis internet.

    Tu pourrais à la limite nous montrer une impression écran de ta base de données afin que nous voyons ce que contiens le champ content. Il peut contenir deux types d'informations :
    • L'url relative ou absolue de l'image précédemment envoyé sur le serveur
    • une image au format BLOB
    un print screen de la table UPLOADS (en attachement).

    normalement l'image est stockée en format BLOB.
    Images attachées Images attachées  

  8. #8
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Ok donc ta technique est la bonne, je suppose que tu as créé un fichier censé générer l'image :

    image.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    mysql_connect("localhost","root","");
    mysql_select_db("family_tree");
    $image = mysql_real_escape_string($_GET["name"]);
    $rs = mysql_query('select * from uploads where name="'.$image.'.png"');
    $row = mysql_fetch_assoc($rs);
    $imagebytes = $row['content'];
    header("Content-type: image/jpeg");
    ?>
    Il manque les quotes " ' " autour de l'index de $row['content']. Lorsque tu oublie les quotes ou guillemets, PHP cherche une constante nommée content.
    (const content / define('content','content')), bref.

    Ensuite pour afficher l'image tu créé un fichier HTML :
    galerie.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="image.php?name=papillons" alt="Visuel représentant des papillons d'Amérique du Sud.."/>

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 112
    Par défaut
    Merci pour ta réponse

    en faite je bosse sur un projet d'arbre généalogique et le code que j'avais mis ici était juste un essai comme je n'étais pas sûr sur son fonctionnement. Donc normalement si je mets la balise " src img " dans un bloque DIV ça devrait marché.

    Merci encore.

    le même problème même sur une page HTML indépendante l'image n'est pas affichée.

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 112
    Par défaut
    Bonsoir

    J'ai essayé aussi le code avec un bloque TRY CATCH pour voir si la requête est exécutée ou non alors il s'est avéré qu'elle ne l'ai pas.

    voilà le code avec le bloque TRY

    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
     
     
    mysql_connect("localhost","root","");
        mysql_select_db("family_tree");
        $image = stripslashes($_REQUEST["name"]);
        $rs = mysql_query("select * from uploads where name=\"".
                addslashes($image).".png\" and id='5'");
        $row = mysql_fetch_assoc($rs);
        if($row[imgdata]){
              echo $row[imgdata];
              exit;
            }        
            else {
                header("Content-Type: image/gif\n");
                header("Content-Transfer-Encoding: binary");
                $fp=fopen("no_image.gif" , "r");
                if ($fp)
                       fpassthru($fp);
            }
    mon professeur m'a dit aussi que le header

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "header("Content-type: image/jpeg");"
    ne permet pas d'effectuer un echo pour un fichier binaire notamment le BLOB.

  11. #11
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    mon professeur m'a dit aussi que le header

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "header("Content-type: image/jpeg");"
    ne permet pas d'effectuer un echo pour un fichier binaire notamment le BLOB.
    Oui, d'ailleurs j'ai dit la meme chose 2 messages plus haut dans lequel je te disais d'appeler l'image via une balise <img/>.


    Concernant ta requête, testes $image, executes la requête dans PhpMyAdmin, pour voir d'ou vient le probleme..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer une image depuis le systeme de fichier
    Par momedalhouma dans le forum JSF
    Réponses: 5
    Dernier message: 18/06/2014, 02h31
  2. Réponses: 3
    Dernier message: 06/08/2013, 12h43
  3. Récupérer une image depuis un IntPtr
    Par Baud10 dans le forum C++/CLI
    Réponses: 4
    Dernier message: 17/01/2010, 17h26
  4. Réponses: 3
    Dernier message: 10/11/2008, 11h58

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