J'aimerais insérer des images dans ma base de données, j'ai donc trouvé un tuto, donnant les explications permettant d'insérer les images et de les récupérer.
ce tuto est :
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 à:
Code:
<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>
Jusqu'à la pas de problème ? je continue alors :
Notre programme inserer_image.php sera alors le suivant:
Code:
<?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();
?>
Bon pas grand chose à expliquer ici non plus a par peut-être la fonction addslashes() qui ajoute des antislashs devant les caractères (',",\,NUL). et pour fread() et fopen() revoir les cours sur la gestion des fichiers.
Un petit programme php, afficher_image.php, va permettre de récupérer l'image dans la base:
Code:
<?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;
?>
La non plus rien de spécial, et puis voila c'est fini !
On appellera ce programme avec une instruction HTML du type:
Code:
<img src="afficher_image.php"?id=identifiant>
où l'on précisera l'identifiant correspondant.
Voilà !!!!!!
J'ai fais exactement comme cité ci-dessus. Les images sont bien enregistrées dans ma base mysql , pour les récupérer, je remplace "identifiant" par le numéro d'incrémentation généré (exemple: 4), je lance ma page où j'ai mis dans le body "]<img src="afficher_image.php"?id=4>
Et là, rien !!! pas d'image, juste une croix ...
La connection est bien faite pourtant ...
Que faire svp ??? help !
mici !