Bonsoir, je me tourne vers vous car je n'ai pas encore trouvé LA solution.
Voilà, j'ai un formulaire avec 3 champs d'upload pour envoyer 3 photos sur mon serveur.
Je récupere bien les données "texte" mais le probleme se pose pour les images car le traitement de l'upload se fait image par image.
Voici mon script:
Je souhaiterai pouvoir enregistrer les 3 images dans ma base de donnees dans 3 champs differents (photo1 / photo2 / photo3).
Si quelqu'un a la solution je suis preneur.
Merci d'avance
Modifié par pareto (15 Mar 2010 - 12:07)
Voilà, j'ai un formulaire avec 3 champs d'upload pour envoyer 3 photos sur mon serveur.
Je récupere bien les données "texte" mais le probleme se pose pour les images car le traitement de l'upload se fait image par image.
Voici mon script:
// boucle permettant d'uploader les fichiers un à un
for($nbr=0;$nbr<$nbr_fichiers;$nbr++){
// on récupère les infos du fichier à uploader
$fichier_temp = $_FILES['fichier_upload_'.$nbr]['tmp_name'];
$fichier_nom = $_FILES['fichier_upload_'.$nbr]['name'];
// on défini les dimensions et le type du fichier
list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);
// infos de contrôle du fichier
$fichier_poids_max = 500000;
$fichier_l_max = 1024;
$fichier_h_max = 768;
// dossier de destination
$fichier_dossier = 'images/';
// extension du fichier
$fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);
// on renomme le fichier
$fichier_date = date("ymdhis");
$nomDesFichiers[] = $fichier_n_nom;
$fichier_n_nom = $nbr."_".$fichier_date.".".$fichier_ext;
// on vérifie s'il y a bien un fichier à uploader
if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {
// on vérifie le poids du fichier
if (filesize($fichier_temp)<$fichier_poids_max) {
// types de fichiers autorises 1=gif / 2=jpg / 3=png
if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3)) {
// on vérifie si l'image n'est pas trop grande
if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max)) {
// si le fichier est ok, on l'upload sur le serveur
if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom)) {
// on donne un acces total sur le fichier
chmod ($fichier_dossier.$fichier_n_nom, 0777);
/*enregistrement dans la base de données */
include ('connection.php');
$table = 'matable';
$query = "INSERT INTO $table VALUES ('','$nom', '$prenom', '$email', '.implode($nomDesFichiers[0]).',
'.implode($nomDesFichiers[1]).',
'.implode($nomDesFichiers[2]).')";
$result = mysql_query($query) or die(mysql_error());
mysql_close($conn);
echo "Le fichier n°".$nbr." a bien été uploadé<br />";
}
// erreur
else {
echo "Le fichier n°".$nbr." n'a pas pu être uploadé<br />";
}
}
// erreur
else {
echo "Le fichier n°".$nbr." est trop grand<br />";
}}
// erreur
else {
echo "Le fichier n°".$nbr." n'a pas le bon format<br />";
}
}
// erreur
else {
echo "Le fichier n°".$nbr." est trop lourd<br />";
}
}
// erreur
//else {
//echo "Pas de fichier à uploader dans le champ n°".$nbr."<br />";
//}
}
Je souhaiterai pouvoir enregistrer les 3 images dans ma base de donnees dans 3 champs differents (photo1 / photo2 / photo3).
Si quelqu'un a la solution je suis preneur.
Merci d'avance
Modifié par pareto (15 Mar 2010 - 12:07)