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

fredericmaill Messages postés 144 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 22 mars 2006 - 16 déc. 2005 à 20:46
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 19 déc. 2005 à 12:35
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

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
16 déc. 2005 à 23:15
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°
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 déc. 2005 à 12:35
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)
0
Rejoignez-nous