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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    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 Expert

    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
    Par défaut
    Donne le HTML produit.

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    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 Expert

    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
    Par défaut
    Et quels sont les headers effectivement renvoyés ?

  5. #5
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    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 Expert

    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
    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 expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    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] ?

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

  9. #9
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    Est ce qu'à un endroit dans ton code tu n'écrirais pas ne serait-ce qu'un espace vide ou un retour chariot (par exemple dans connexion.php) qui ferait que ton header se retrouverait apres la premiere sortie ?

  10. #10
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut
    non je ne pense pas...

    code de la page connexion.php :

    <?php

    $db=mysql_connect("localhost","root","") or die (mysql_error());
    mysql_select_db("testimg",$db) or die (mysql_error());

    ?>

  11. #11
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    Peux-tu nous remettre le code de afficher.php corrigé au niveau du header, pour vérifier la syntaxe ?

    Peux tu faire le test d'enregistrer la sortie de afficher.php sur ton disque, de le renommer en .jpg et de voir si tu peux l'ouvrir ?

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

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