Les Allergies
Alimentaires
Posez votre question Signaler

Insérer image dans une base de données mysql

niam 3Messages postés 15 juin 2006Date d'inscription - Dernière réponse le 12 avril 2011 à 02:54
bonjour,

Voilà mon problème: j'ai besoin d'insérer une image dans une table mysql.je suis allé voir sur des forum et voilà ce que j'ai mis dans mon code à la suite de ça.

j'ai un fichier premiere_page_ajouter où j'ai :

<form method="post" action="premiere_page_ajouter_confirmer.php" enctype="multipart/form-data" onsubmit="return offre_ajouter(this)" >
...
<tr class="fiche_voyage_ligne">
<td class="fiche_voyage_rubrique">Image </td>
<td><input name="fichier_image" type="file" accept="image/jpeg"></td>
</tr>

et un autre fichier premiere_page_ajouter_confirmer où j'ai :

...
$str_image = addslashes(fread(fopen($_POST['fichier_image'],"r"),filesize($_POST['fichier_image'])));

$requete_une = "INSERT INTO `premieres_pages` ( `jour` , `mois` , `annee` , `titre`, `texte`, `image`) VALUES ('$_POST[jour]','$_POST[mois]','$_POST[annee]', '$_POST[titre]', '$str_description', '$str_image')";
if($resultat_un = mysql_query($requete_une))
print("<br /><br />Le nouveau voyage a bien été inséré. ");

après cela, toutes les informations sont enregistréees dans la base sauf l'image.(l'image est de type BLOB dans mysql et est à null par défaut). il est affiché 0 octets pour l'image.

merci d'avance pour vos réponses.
Lire la suite 

Insérer image dans une base de données mysql »

3 réponses
Réponse
+3
moins plus
salut tout le monde
bah j essayé ce type de code
mais ca marchera pas toujours,
il ya des ""notices"" qui s'affiche dont le contexte est que le nom du champ file ou j'insére mon image n'est pas défini !!!

voici une parti de mon code :



//connection à la base
$cnx=MySQL_Connect("localhost","root","mysql") or die("erreur de connexion");
MySQL_select_db("agencevoyage",$cnx)or die ("base non trouvé");

// récolte des données du fichier 1:
$img_tmp = $_FILES["image"]["tmp_name"]; //ligne 115
$img_name = $_FILES["image"]["name"]; //ligne 116
$img_size = $_FILES["image"]["size"]; //ligne 117
$img_type = $_FILES["image"]["type"]; //ligne 118

echo"$img_name<br>";

// ajout dans la table:
$donnees = addslashes(fread(fopen($img_tmp, "r"),$img_size));


$result = mysql_query("INSERT INTO 'agencevoyage'.'photo1_desc'
('id_photo',
'donnees_binaires',
'nom_fichier',
'taille_fichier',
'type_fichier',
'Nom_hotel')
VALUES (NULL, '$donnees','$img_name','$img_size','$img_type','$nh')");
$id = mysql_insert_id();

//fermeture de la base
mysql_close();

=============
les notices affichée :

Notice: Undefined index: image in E:\...\desc_photo_ajout.php on line 115
Notice: Undefined index: image in E:\...\desc_photo_ajout.php on line 116
Notice: Undefined index: image in E:\...\desc_photo_ajout.php on line 117
Notice: Undefined index: image in E:\...\desc_photo_ajout.php on line 118

===================
help, j'en ai vraiment besoin !!!
Ajouter un commentaire
Réponse
+2
moins plus
déterrage de sujet mort. m'enfin tant pis ça sort encore sur google... Dans un formulaire avec l'attribut "enctype=multipart/form-data" les input de types files sont à retrouver dans le tableau $_FILES[nom_du_champ] et non dans $_POST[nom_du_champ]

Chaque fichier est ensuite accédé par ce tableau

$_FILES[nom_du_champ][name] = nom du fichier avant upload
$_FILES[nom_du_champ][type] = type MIME
$_FILES[nom_du_champ][tmp_name] = le fichier sur le serveur avec son nom temporaire (sous unix/linux /tmp/bidulechoz ou %WINDIR%\temp\bidulechoz sous ms windows)
$_FILES[nom_du_champ][size] = la taille du fichier en octets.

Sinon oui RTFM me parait être une bonne réponse aussi...
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Le traitement de l'image posté ne me semble pas correct. Regardes du coté de
la doc PHP (en français) :
http://fr.php.net/manual/fr/features.file-upload.php

A+, crabs
Ajouter un commentaire
Ce document intitulé « insérer image dans une base de données mysql » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?