Afficher une image de type BLOB dans un tableau html

Fermé
ookahh1 Messages postés 61 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 2 octobre 2013 - 27 avril 2013 à 22:03
 loupix - 28 avril 2013 à 11:28
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ÍT x¯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¨öÓ' nmU s@@(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
A voir également:

1 réponse

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