Index du Forum » » Le coin des codeurs

Auteur

insertion image ds mysql
Anonyme
19853  

  Posté : 16-05-2003 16:14

heu....pour que tous le monde en profites, je remet le script en intégralité


1) création de la base (bien-sur, il est possible d'intégrer ces champs dans une autre table)

CREATE TABLE images (
id int(11) NOT NULL auto_increment,
image longblob NOT NULL,
i_name varchar(100) NOT NULL default '',
i_size varchar(50) NOT NULL default '',
i_type varchar(50) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;



2) enregistrement de l'image dans la base

Image :<input type="file" name="image" size="40"><input type="hidden" name="MAX_FILE_SIZE" value="1000000"> // champ permettant la sélection du fichier image

<?
if ($image!="")
$imag=AddSlashes(fread(fopen($image,"rb"),filesize($image)));
els e
{
$imag="";
$image_type="";
$image_size="";
$image_name="";
}
?>

Ensuite, une requete INSERT INTO en mettant la variable $imag dans le champ BLOB pour insérer l'image dans la base.



3) page affiche_image.php qui contient le code de récupération de l'image dans la base MySQL

<?
session_start();
!include!("scripts/parametres.php"); // page qui contient les infos de connexion à la base, au choix du développeur

$db = mysql_connect("$dbhost", "$dblogi", "$dbpass");
mysql_select_db("$dbbase",$db);

$row=mysql_query("select * from images where id=$id");
$type=mysql_result($row,0,"i_type");
$name=mysql_result($row,0,"i_name");
$size=mysql_result($row,0,"i_size");
$image=mysql_result($row,0,"image");
header("!!!content-type:!!! $type");
echo $image;
?>



4) sur n'importe quelle page, il suffit de mettre ces 2 lignes pour
afficher l'image

<?
$image_aff = "<img src=\"affiche_image.php?id=".$id."\">"; // $id est la variable qui contient l'identifiant de l'enregistrement dans lequel se trouve l'image
echo $image_aff;
?>



voila, le script est complet

je l'envoi tout de même à ceux qui l'ont demandé

@+
Ysandril, paladin sur DAoC (ca c'est pour faire de la pub )



Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=4160&forum=5