Afficher une image de type BLOB dans un tableau html

Bonjour, je développe un site en ce moment et j'ai un problème.
Voilà j'ai inséré dans ma base mysql une image voici la base:

CREATE TABLE 'secteur' (
'id' INT auto_increment PRIMARY KEY ,
'nom_secteur' VARCHAR( 100 ) NOT NULL ,
'raison_sociale' VARCHAR( 100 ) NOT NULL ,
'commune' VARCHAR( 50 ) NOT NULL ,
'adresse' VARCHAR( 150 ) NOT NULL ,
'tel1' VARCHAR( 25 ) NOT NULL ,
'tel2' VARCHAR( 25 ) NOT NULL ,
'fax' VARCHAR( 25 ) NOT NULL ,
'email' VARCHAR( 40 ) NOT NULL ,
'site' VARCHAR( 30 ) NOT NULL ,
'img_nom' VARCHAR( 50 ) NOT NULL ,
'img_taille' VARCHAR( 25 ) NOT NULL ,
'img_type' VARCHAR( 25 ) NOT NULL ,
'img_desc' VARCHAR( 100 ) NOT NULL ,
'img_blob' BLOB NOT NULL ,
)

Pour l'insertion ça va, voici le code:

<?php
function transfert ()
{
$ret = false;
$secteur = $_POST['secteur'];
$raison = $_POST['raison'];
$commune = $_POST['email'];
$adresse = $_POST['adresse'];
$tel1 = $_POST['tel1'];
$tel2 = $_POST['tel2'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$site = $_POST['site'];

$img_blob = '';
$img_taille = 0;
$img_type = '';
$img_nom = '';
$taille_max =250000;
$ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
if ( !$ret )
{
echo "Problème de transfert";
return false;
}
else
{
// Le fichier a bien été reçu
$img_taille = $_FILES['fic']['size'];
if ( $img_taille > $taille_max )
{
echo "Trop gros !";
return false;
}
$img_type = $_FILES['fic']['type'];
$img_nom = $_FILES['fic']['name'];

include ("connexion.php");
$img_blob = file_get_contents ($_FILES['fic']['tmp_name']);

$req = "INSERT INTO secteur (".
"nom_secteur, raison_sociale, commune, adresse, tel1, tel2, fax, email, site, img_nom, img_taille, img_type,img_blob ".
") VALUES (".
"'".$secteur."', ".
"'".$raison."', ".
"'".$commune."', ".
"'".$adresse."', ".
"'".$tel1."', ".
"'".$tel2."', ".
"'".$fax."', ".
"'".$email."', ".
"'".$site."', ".
"'".$img_nom."', ".
"'".$img_taille."', ".
"'".$img_type."', ".

"'".addslashes ($img_blob)."') ";
$ret = mysql_query ($req) or die (mysql_error ());
return true;
}
}
?>

mais par contre il ya un hic pour l'affichage .
voici le code:

<?php
if ( isset($_GET['id']) )
{
$id = intval ($_GET['id']);
include ("connexion.php");
$req = "SELECT id, img_type, img_blob ".
"FROM secteur WHERE 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 addslashes ($col[2]);
}
}
else
{
echo "Mauvais id d'image";
}
?>

je reccupère dans un autre formulaire et j'affiche l'image avec ce code.
mais voilà ce code marche, mais lorsque je l'insere dans un tableau ca na marche plus
jai ceci;

ÿØÿà\0JFIF\0\0\0d\0d\0\0ÿì\0Ducky\0\0\0\0\0<\0\0ÿî\0Adobe\0dÀ\0\0\0ÿÛ\0"\0 ÿÀ\0\0¼)\0ÿÄ\0¶\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0!1AQa\"q `¡2BRr#±b''SðÁá¢CѲ3f£4T"¤%5eñÂÒâcs"³ÓDU&\0\0\0\0\0\0\0!1AQq ¡±2`ÑáRSðaÁBr34ÿÚ\0\0\0?\0úuþJë!tû>----=ǺÞ+Z+'t\0€Ð ­ª-@æ"i@ÖPXZ¤ê ì\0(ÓA]:ø · ­Ô'­...ÇJf£[éu©P¦ÜÛÛ<+Mí«Xéíýæ6_aý¡À\0ÐyÇQà ch€€ì@'»©î¤TÕÝH0/00«*TPõ(=CÔ€\\ 8*[Ö ¶fEBÍTx¯BzÚ S>D (ê [#i@% ª €MP'wö€^{@@æ sh ¬¥P= 5 ±'5½^|Z OEn\'fZ ©¹â¶±"M"ºSÆTø®!sÑý+Q³ªø[+µu䢡·s÷[Qö[Çò-t3--#õg3&Gýñ.Ü|¿+óC]v x ©¡W¦%"o<Üâ>ªÚfîe­¤"|·(òtu¼îðá(TM)ãó$!ÇóObÄ¿E6"=¼*8,#2"@ÁØ€...Pª A:¢½ª£Ú¨ ÑÞ4T,Z'â S€kåvúÿ\0ã/\0ÖÎÌ#Ðõ:]¬@Ée¾¯f§afx»sZCæ#¬¸fO2×HÆ\\ÞÝÞNéï%'âáÚºY\\}\'UbPÒ'ÈÁ:kÃZ ¨fy¢ÓÇ·mÃ>VÊsz ùÁs²¾õôSs Ìoe lË(TM)7e1N8ëóïD...7øØ<\\{IXA µh4¥uZ\0PM *hQ¡AS€¡QBATÚh e¨öÓ' nmUs@@(TM)º CÁª¸ [ª d € \0(\0 "6Ña'P='5ìé>DÀeÄö¶6â{ë^¬mȨ-äí.§ØOEþ#ÿ\0@Ú· ~É}TÁÚ\"Ùù;€Î.(ÛpzÄmïØåp2¾zæ|Û^¼½{ 2Ú ...etc

Comment afficher les image de type BLOB depuis la base de donnée dans un tableau ?

merci

1 réponse

  1. faudrait utiliser gd ;

    si, ta encoder en base64 ton image ;

    header ("Content-type: image/jpeg");

    $data = base64_decode($img_blob);

    $image= imagecreatefromstring($data);

    ImageJpeg($image);
    0