Upload d'imageS et inser dans la BDD
Posté : 06 mars 2006, 23:11
Bonjour,
J'ai parcouru le forum de long en large et je n'ai pas trouvé exactement ce que je cherche...
Je m'explique. J'ai une page qui permet de créer des fiches descriptives pour des produits. Prix, villes, descriptions, etc... et une image. Cette image est uploadée sur le serveur et son nom est inséré dans la base, liée à l'ID du produit.
Cette fiche fonctionne parfaitement.
Sauf que j'aimerai insérer 3 images au lieu d'une seule. Et là... Je cale. J'ai essayé de me débrouiller de manière simple (trop simple sans doute) et ça ne fonctionne pas.
Voici mon code :
Pour uploader 3 photos au lieu d'une seule, j'ai essayé tout bêtement avec un
mais ça ne marche pas...
J'ai bien entendu parler du FOREACH mais... si j'arrive à peu près à m'en servir pour uploader 3 images dans un dossier, je n'arrive pas à m'en servir pour entrer précisement photo, photo2 et photo3 dans ma base.
Quelqu'un aurait-il une idée ? Une orientation à m'offrir ?
Un grand merci par avance et désolée pour la longueur du message !!!
mily
J'ai parcouru le forum de long en large et je n'ai pas trouvé exactement ce que je cherche...
Je m'explique. J'ai une page qui permet de créer des fiches descriptives pour des produits. Prix, villes, descriptions, etc... et une image. Cette image est uploadée sur le serveur et son nom est inséré dans la base, liée à l'ID du produit.
Cette fiche fonctionne parfaitement.
Sauf que j'aimerai insérer 3 images au lieu d'une seule. Et là... Je cale. J'ai essayé de me débrouiller de manière simple (trop simple sans doute) et ça ne fonctionne pas.
Voici mon code :
<?php
if ($ajoutArticle=="ok")
{
$MAX_FILE_SIZE = 200000;
//fixe le type d extension de fichier
$allowed_types = array("image/gif", "image/pjpeg", "image/jpeg", "image/jpg");
//stockage des proprietes ds des variables
$fname = $HTTP_POST_FILES['photo']['name'];
$ftype = $HTTP_POST_FILES['photo']['type'];
$fsize = $HTTP_POST_FILES['photo']['size'];
$ftmp = $HTTP_POST_FILES['photo']['tmp_name'];
//verifie si le type de fichier est bien autorise
if(!in_array($ftype, $allowed_types))
{
//message si n\'est pas correct
die("<br><center><b>Le format de votre photo n est pas correct.</b>
<br>Seuls sont acceptes =>.bmp, .gif, .jpg, .jpeg<br><a href = 'BienAjout.php'><b>Réessayer</b></a></center>");
}
//verifie taile
if($fize > $MAX_FILE_SIZE)
{
//si superieur on affiche un message
die("<center>Votre fichier est trop gros!!!<br><a href ='BienAjout.php'><b>Réessayer</b></a></center><br>");
}
//si tout est ok, on copie le fichier ds le repertoire fixe et affiche un message si tout est ok
if(copy($ftmp,"../image/".$fname))
{
echo"<br><center><h3>Annonce correctement enregistrée</h3></center>";
}
//requete pour inserer les nouvelles données dans la base
$requete="INSERT INTO datahouse (idmoyen, idbien, idvilles, prix, idpieces, reference, surface, description, date, chambres, annee, terrain, sejour, contact, idchauffage, cave, garage, photo)
VALUES('".$_POST['idmoyen']."', '".$_POST['idbien']."', '".$_POST['idvilles']."', '".$_POST['prix']."', '".$_POST['idpieces']."', '".$_POST['reference']."', '".$_POST['surface']."', '".$_POST['description']."', '".$_POST['date']."', '". $_POST['chambres']."', '". $_POST['annee']."', '". $_POST['terrain']."', '". $_POST['sejour']."', '". $_POST['contact']."', '". $_POST['idchauffage']."', '". $_POST['cave']."', '". $_POST['garage']."', '$fname')";
$verif = mysql_query($requete);
}
?>
et pour mon fichier à uploader, c'est juste un : <input name="photo" type="file">Pour uploader 3 photos au lieu d'une seule, j'ai essayé tout bêtement avec un
$fname = $_FILES['photo']['name'];
$ftype = $_FILES['photo']['type'];
$fsize = $_FILES['photo']['size'];
$ftmp = $_FILES['photo']['tmp_name'];
$fname2 = $_FILES['photo2']['name2'];
$ftype = $_FILES['photo2']['type'];
$fsize = $_FILES['photo2']['size'];
$ftmp2 = $_FILES['photo2']['tmp_name'];
etc...
et un
if((copy($ftmp,"../image/".$fname))&&(copy($ftmp2,"../image/".$fname2))&&(copy($ftmp3,"../image/".$fname3)))
et, évidemment "INSERT INTO ... bla bla... photo, photo2, photo3".mais ça ne marche pas...
J'ai bien entendu parler du FOREACH mais... si j'arrive à peu près à m'en servir pour uploader 3 images dans un dossier, je n'arrive pas à m'en servir pour entrer précisement photo, photo2 et photo3 dans ma base.
Quelqu'un aurait-il une idée ? Une orientation à m'offrir ?
Un grand merci par avance et désolée pour la longueur du message !!!
mily