Images ds mysql
fei
-
yooo -
yooo -
bonjour a tous !
j'aimerais savoir comment fait on pour insérer des images dans une base de donné telque mysql?
jai utilisé champs de type BLOB mais ca ne marche pas !
jaimerais ensuite itilisé ces photo pour les insérer dans des tableaux
merci d'avance!
j'aimerais savoir comment fait on pour insérer des images dans une base de donné telque mysql?
jai utilisé champs de type BLOB mais ca ne marche pas !
jaimerais ensuite itilisé ces photo pour les insérer dans des tableaux
merci d'avance!
1 réponse
-
le plus simple c'est à mon avis d'uploader l image (dans la cas d'une page web) et de donner le chemin d accé dans ta base sous forme de chaine de caratere...car franchement si il y a beaucoup d images cela risque de ralentir considerablement tes requetes.
Enfin si tu persiste voila quelques lignes de code et du commantaire cela pourra sans doute t 'aider ;-)
Stocker directement des images avec MySQL
Il nous faut créer une base (nous l'appellerons "essai") et une table (nous l'appellerons "images_binaires") qui comprendra les champs suivants: id (un entier), donnees_binaires (type MySQL LONGBLOB), nom_fichier (une chaîne), taille_fichier (une chaîne), type_fichier (une chaîne), et, éventuellement, un champ description (une chaîne). On n'oubliera pas de préciser "auto_increment" pour l'identifiant. Nous allons insérer les images dans la base à l'aide, par exemple, d'un formulaire HTML. Il ressemblera à:
<form method="post" action="inserer_image.php" enctype="multipart/form-data">
Nom du fichier: <input type="file" name="image" size="40">
<br><input type="submit" name="ok">
</form>
Notre programme inserer_image.php sera alors le suivant:
<?php
mysql_connect("","root","");
mysql_select_db("essai");
$donnees = addslashes(fread(fopen($image, "r"), filesize($image)));
$result=mysql_query("INSERT INTO images_binaires (donnees_binaires,nom_fichier,taille_fichier,type_fichier) VALUES ('$donnees','$image_name','$image_size','$image_type')");
$id= mysql_insert_id();
print "<br>Indentifiant du fichier dans la base: $id<br>";
mysql_close();
?>
Un petit programme php, afficher_image.php, va permettre de récupérer l'image dans la base:
<?php
@mysql_connect("","root","");
@mysql_select_db("essai");
$requete = "SELECT donnees_binaires,type_fichier FROM images_binaires WHERE id=$id";
$resultat = @mysql_query($requete);
$donnees = @mysql_result($resultat,images_binaires.donnees_binaires);
$type = @mysql_result($resultat,0,images_binaires.type_fichier);
header( "content-type: $type");
echo $donnees;
?>
On appellera ce programme avec une instruction HTML du type:
<img src="afficher_image.php"?id=identifiant>
où l'on précisera l'identifiant correspondant.