Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/07/2007, 23h11   #1
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
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 :
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 :
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";
}
?>
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 23h31   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Donne le HTML produit.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 23h35   #3
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
code renvoyer par la page des liste :

6_sep_Hedgehog_McFlurry_Cup.JPG (normal)

code renvoyer par la page d'aperçu :

Code x :
ÿØÿà�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 !!)
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 23h43   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Et quels sont les headers effectivement renvoyés ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 23h48   #5
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
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 !
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 23h51   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
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).
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 00h03   #7
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
?!?!?!?!
au risque de passer pour un "con" je comprend pas se que tu veut que j'envoie ?!?!?!?!
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 00h14   #8
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
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]'
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h02   #9
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
non sa n'a pas l'aire de vouloir marché...
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h11   #10
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
et en changeant
Code :
header("content-type : ".$col[1]);
par
Code :
header("Content-Type: ".$col[1]);
?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h15   #11
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
toujours pas...

j'ai utilisé le PDF explicatif pour faire mes pages :
http://beaussier.developpez.com/arti...hp/mysql/blob/
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h17   #12
Membre du Club
 
Inscription : 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 : 53
Points : 53
BJR ,
pourquoi tu essaye pas de produire de l'html en inserant l'image avec un src img
Code :
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
luminien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h20   #13
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
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 !
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h25   #14
Membre du Club
 
Inscription : 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 : 53
Points : 53
ben moi j'ai l'url stockée ds la BD aussi
Code :
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
luminien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h29   #15
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Citation:
Envoyé par luminien
ben moi j'ai l'url stockée ds la BD aussi
Code :
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).
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h30   #16
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Je me suis trompé tout a l'heure il faut écrire
Code :
header ("Content-type: ".$col[1]);
sans T majuscule à type, je crois que les headers sont sensibles a la casse, peux-tu essayer ca directement?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h30   #17
Membre du Club
 
Inscription : 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 : 53
Points : 53
ok !!
je vais lire ce tut !!
luminien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 13h19   #18
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
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...
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 14h51   #19
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Code :
1
2
header("Content-type:".$col[1]);
echo $col[2];
Que contient réellement $col[1] ?
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 14h54   #20
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 4
Points : 4
$col[1] contient le type de fichier soit : "image/jpeg"
Terni est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h34.


 
 
 
 
Partenaires

Hébergement Web