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 :

Aperçu d’image provenant d’une BDD MySQL avec PHP [Fait]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut Aperçu d’image provenant d’une BDD MySQL avec PHP
    Bonjour,

    J’ai téléchargé un PDF expliquant comment enregistrer des images dans une base de données MySQL et comment les retranscrire sur un navigateur grâce au PHP.
    Presque tout marche ! Mais quand j’ouvre l’aperçu de l’image (qui vient de ma base de données) je me retrouve avec le code binaire de cette image…
    Comment puis-je me voir l’image elle-même ??

    Merci de votre aide.

    Ps : voici les pages que j’ai créés.
    Page me permettent de voir la liste des images :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    include ("connexion.php");
    $req = "SELECT img_nom, img_id
    		FROM images
    		ORDER BY img_nom";
     
    $ret = mysql_query($req) or die (mysql_error());
    while($col = mysql_fetch_row($ret))
    {
    	echo "<a href=\"apercu.php?id=".$col[1]."\">".$col[0]."</a><br />";
    }
    ?>
    Page pour l’aperçu de l’image :
    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
    <?php
    include ("connexion.php");
    if (isset($_GET['id']))
    {
    	$id = intval($_GET['id']);
    	$req = "SELECT img_id, img_type, img_blob
    			FROM images
    			WHERE img_id = ".$id;
    	$ret = mysql_query ($req) or die (mysql_error());
    	$col = mysql_fetch_row ($ret);
    	if (!$col[0])
    	{
    		echo "Id d'image inconnu";
    	}
    	else
    	{
    		header("content-type : ".$col[1]);
    		echo $col[2];
    	}
    }
    else
    {
    	echo "mauvais id d'image";
    }
    ?>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Donne le HTML produit.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    code renvoyer par la page des liste :

    6_sep_Hedgehog_McFlurry_Cup.JPG (normal)

    code renvoyer par la page d'aperçu :

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    ÿØÿà�JFIF���d�d��ÿì+Ducky�����<��� �I�n� �t�h�i�s� �u�n�d�a�t�e�d� �p�h�o�t�o� �r�e�l�e�a�s�e�d� �b�y� �t�h�e� �B�r�i�t�i�s�h� �H�e�d�g�e�h�o�g� �P�r�e�s�e�r�v�a�t�i�o�n� �S�o�c�i�e�t�y� �F�r�i�d�a�y� �S�e�p�t�.� �1�,� �2�0�0�6� �a� �h�e�d�g�e�h�o�g� �e�a�t�s� �l�e�f�t� �o�v�e�r� �i�c�e� �c�r�e�a�m� �f�r�o�m� �a� �d�i�s�c�a�r�d�e�d� �c�u�p�.� �M�c�D�o�n�a�l�d�'�s� �C�o�r�p�.� �s�a�i�d� �F�r�i�d�a�y�,� �S�e�p�t�.� �1�,� �2�0�0�6� �i�t� �h�a�d� �r�e�d�e�s�i�g�n�e�d� �t�h�e� �c�u�p�s� �f�o�r� �i�t�s� �M�c�F�l�u�r�r�y� �d�e�s�s�e�r�t� �s�o� �t�h�a�t� �t�h�e�y� �n�o� �l�o�n�g�e�r� �p�o�s�e�d� �a� �d�a�n�g�e�r� �t�o� �t�h�e� �s�p�i�k�y� �w�o�o�d�l�a�n�d� �c�r�e�a�t�u�r�e�s�.� �T�h�e� �B�r�i�t�i�s�h� �H�e�d�g�e�h�o�g� �P�r�e�s�e�r�v�a�t�i�o�n� �S�o�c�i�e�t�y� �h�a�s� �c�a�m�p�a�i�g�n�e�d� �f�o�r� �y�e�a�r�s� �a�g�a�i�n�s�t� �t�h�e� �c�o�n�t�a�i�n�e�r�s�,� �s�a�y�i�n�g� �h�e�d�g�e�h�o�g�s� �h�a�d� �d�i�e�d� �w�h�i�l�e� �t�r�y�i�n�g� �t�o� �e�a�t� �l�e�f�t�o�v�e�r� �i�c�e� �c�r�e�a�m� �f�r�o�m� �d�i�s�c�a�r�d�e�d� �c�u�p�s�.� �C�a�m�p�a�i�g�n�e�r�s� �s�a�i�d� �t�h�e� �o�p�e�n�i�n�g� �i�n� �t�h�e� �l�i�d� �w�a�s� �l�a�r�g�e� �e�n�o�u�g�h� �f�o�
    [...] j'en est mi qu'une petite partie... (je voudrais avoir l'image !!)

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Et quels sont les headers effectivement renvoyés ?

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    erf

    pour la page liste tout va bien.
    mais pour la page aperçu on est sensé voir l'image qui se trouve (en binaire) dans la base de données... Mais je me retrouve avec le code binaire de l'image et pas l'image elle-même !

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Oui, j'ai bien compris. Mais fais une copie des headers envoyés si tu appelles directement ton script d'aperçu (Informations > En-têtes HTTP (réponses) dans le module WebDevelopper de Firefox).

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    ?!?!?!?!
    au risque de passer pour un "con" je comprend pas se que tu veut que j'envoie ?!?!?!?!

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Ton problème vient probablement du fait qu'Apache ne reconnait pas que tu lui envoies une image. Il s'agit donc d'une erreur d'header probablement.
    Plus simplement, fais un echo de 'content-type : ".$col[1]'

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    non sa n'a pas l'aire de vouloir marché...

  10. #10
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    et en changeant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("content-type : ".$col[1]);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Content-Type: ".$col[1]);
    ?

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    toujours pas...

    j'ai utilisé le PDF explicatif pour faire mes pages :
    http://beaussier.developpez.com/arti...hp/mysql/blob/

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 67
    Points
    67
    Par défaut
    BJR ,
    pourquoi tu essaye pas de produire de l'html en inserant l'image avec un src img
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<img border=1 src=\"".$url_img."\" title=\"".$id_img."\" alt=\"photo\">" ;
    moi je fais ca et ca marche !
    mais mon code est different du tiens aussi

  13. #13
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    mais moi je n'utilise pas l'URL de l'image (elle n'en a pas) elle est directement enregistré dans la BDD en binaire !

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 67
    Points
    67
    Par défaut
    ben moi j'ai l'url stockée ds la BD aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $chaine="SELECT url,date_verif,label FROM imglist WHERE id=".$id_img;
    $request = MYSQL_QUERY($chaine);
    $nb_rep = MYSQL_NUMROWS($request);
    if ($nb_rep!=1) {echo "erreur de parametrage de l'image"; exit;}
     
    $url_img = mysql_result($request,0,"url");
    ou peut ete j'ai pas tres bien compris ton pb

  15. #15
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par luminien
    ben moi j'ai l'url stockée ds la BD aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $chaine="SELECT url,date_verif,label FROM imglist WHERE id=".$id_img;
    $request = MYSQL_QUERY($chaine);
    $nb_rep = MYSQL_NUMROWS($request);
    if ($nb_rep!=1) {echo "erreur de parametrage de l'image"; exit;}
     
    $url_img = mysql_result($request,0,"url");
    ou peut ete j'ai pas tres bien compris ton pb
    Il ne stocke pas l'image sur le disque dur, ni l'url de l'image dans la base, il stocke le contenu de l'image (l'image totale donc) dans la base de données directement (comme un objet binaire).

  16. #16
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je me suis trompé tout a l'heure il faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header ("Content-type: ".$col[1]);
    sans T majuscule à type, je crois que les headers sont sensibles a la casse, peux-tu essayer ca directement?

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 67
    Points
    67
    Par défaut
    ok !!
    je vais lire ce tut !!

  18. #18
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    je l'avais déjà testé mais sa marche pas non plu...

    erf
    je viens d'enlever l'espace de "type :" => "type:"

    et maintenant sa me donne l'adresse de la page...

  19. #19
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Content-type:".$col[1]);
    echo $col[2];
    Que contient réellement $col[1] ?

  20. #20
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    $col[1] contient le type de fichier soit : "image/jpeg"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/01/2007, 11h59
  2. [MySQL] Connexion à la base MySQL avec PHP
    Par randriamanana dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 05/01/2007, 12h06
  3. [SimpleXML] bdd xml avec php
    Par ecdxml dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/06/2006, 13h53
  4. Réponses: 1
    Dernier message: 28/04/2006, 16h17
  5. Importation d'un fichier xml vers une BD mysql avec php
    Par naima2005 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 28/04/2006, 15h23

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