D?affichage image dans base mysql ( champ de type blob )

Signaler
Messages postés
144
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
22 mars 2006
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Bonsoir,

J'ai un problème pour afficher des images contenues dans ma base mysql dans un champ blob d'une de mes tables.

La structure ma table « image est la suivante :

Structure de la table `image`
--

CREATE TABLE `image` (
`imag_id` int(10) NOT NULL auto_increment,
`imag_nom` varchar(20) default NULL,
`imag_type` varchar(10) NOT NULL default '',
`imag_taille` varchar(20) NOT NULL default '',
`imag_lienrep` varchar(50) NOT NULL default '',
`imag_image` longblob NOT NULL,
`id_boutique` varchar(50) NOT NULL default '',
PRIMARY KEY (`imag_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Image' AUTO_INCREMENT=2 ;

Voici un exemple d'enregistrement du champ imag_type de la table image : image/pjpe

<?

$sql = new mysql("localhost","root","", "$base","1","erreur" );
$sql->requete("SELECT * FROM image WHERE id_boutique = ".$id,"0");

while( $val = $sql->resultat(0) )
{

echo'
<td>
';

echo '
';
header('Content-Type:'.$val['imag_type'].''); // ligne 239
echo $val["imag_image"];

}

?>


Ce code m?affiche des symboles curieux, comme si il m?affichait les images en mode binaire
Un exemple :

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\formnafnaf\index.php:2) in c:\program files\easyphp1-8\www\formnafnaf\index.php on line 239
? JFIF , ,?ICC_PROFILE HLino mntrRGB XYZ ΀ 1acspMSFTIEC sRGB?ӭHP cprt P3desc ?lwtpt ? bkpt rXYZ gXYZ , bXYZ @ dmnd Tpdmdd Ā?vued L?view Ԁ$lumi ?meas $tech 0 rTRC < gTRC < bTRC < textCopyright (c) 1998 Hewlett-Packard Companydesc sRGB IEC61966-2.1 sRGB IEC61966-2.1XYZ �� ̘YZ XYZ o?8??XYZ b??? ژYZ $? ??Ϥesc IEC http://www.iec.ch IEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view ??ϔ 팀 \? XYZ L VPW¬筥as ? sig CRT curv #(-27;@EJOTY^chmrw|??????????????ƀˀЀՀۀ?뀰? ¬ % + 2 8 > E L R Y ` g n u | ? ? ? ? ? ? ? ? ?Ɂсفၩ �� & / 8 A K T ] g q z ? ? ? ? ? ? ?˂Ղ? ? ! - 8 C O Z f r ~ ? ? ? ? ? ǃӃ? ? - ; H U c q ~ ? ? ? ? Ąӄᄰ ? : I X g w ? ? ? ? ŅՅ其 ' 7 H Y j { ? ? ? ?цㆵ +=Oat????҇凸 ¬ 2 F Z n ? ? ? ? ҈爻 % : O d y ? ? ? ω剻 ' = T j ? ? ? Ŋ܊��" 9 Q i ? ? ? ȋዹ * C \ u ? ? ?ٌ��& @ Z t ? ? Íލ?

Merci de votre aide !!

2 réponses

Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\formnafnaf\index.php:2) in c:\program files\easyphp1-8\www\formnafnaf\index.php on line 239

Les header sont déja envoyés ligne 2 tu ne peut les remodifiers... .. .

Personnellement je dirais qu'il faut que ton fichier générant les images soit à part et soit appelé via la balise image genre...



ce qui donnerait... dans ta page...

$sql = new mysql("localhost","root","", "$base","1","erreur" );
$sql->requete("SELECT imag_id,imag_nom FROM image WHERE id_boutique = ".$id,"0");

while( $val = $sql->resultat(0) ) {
echo'<td>

</td>';
}

et dans ta page image.php...

if(isset($_GET['id']) && !empty($_GET['id']) && is_numeric($_GET['id'])){
$sql = new mysql("localhost","root","", "$base","1","erreur" );
$result $sql->requete("SELECT imag_type,imag_image FROM image WHERE id_boutique ".$_GET['id'],"0");
$img = $sql->resultat(0);

header('Content-Type: '.$img['imag_type']);
echo $img['imag_image'];
}



Après...

-1- le code ne marchera peut être pas tel quel car ne connaissant pas ta class sql j'ais fait ça à ma sauce... faudra adapter mais l'idée est là

-2- il y a peut être moyen de faire plus légé pour la base mais ne m'étant jamais penché sur ce genre de question là comme ça je ne sais pas... .. .

@ tchaOo°
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

en html pure, tu mélanges le fichier d'image et le fichier html ???



non, alors en php c'est pareil, une image + un texte = 2 requettes !

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)