Poster plusieurs images pour les afficher ensuite
Résolu
emrh
Messages postés
427
Date d'inscription
Statut
Membre
Dernière intervention
-
emrh Messages postés 427 Date d'inscription Statut Membre Dernière intervention -
emrh Messages postés 427 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous...
J'ai un problème dans mon code et à force d'avoir le nez dedans, je n'arrive pas à mettre le doigt dessus ;-)
J'ai un formulaire qui me permet de récupérer 1 ou 10 images sur mon ordi et de les télécharger sur mon serveur Web. Après vérification de différents paramètres (taille, extension), je renomme mon fichier avec comme nom la date (classique) et j'informe ma bdd de ce nom dans un champs photo1, photo2...photo10.
Je rencontre les problèmes suivants :
1 - Une seule image est uploadée à chaque fois, même si plusieurs
input sont renseignés de données différentes ! (problèmes dans ma boucle ?)
2 - Les champs 'photo1', 'photo2'... de la BDD sont remplis du même nom de fichier !
3 - Quand je reviens sur le formulaire pour ajouter une 'photo5' par exemple, la 'photo1' disparaît ensuite du formulaire alors que j'aimerai qu'elle reste et que vienne s'ajouter la 5...
je pense que le problème vient du fait que je ne sais pas faire un contrôle sur un array vide....($_FILES['photo' . $i])
Mais plutôt que de long discours, voici mon code :
FORMULAIRE :
TRAITEMENT :
EDIT :
print_r de $_FILES['photo' . $i] donne :
Array
(
[name] => chambre-de-luxe-1269194801.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpkvWOan
[error] => 0
[size] => 41380
)
Array
(
[name] => chambre-coloniale-1269194783.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpMve222
[error] => 0
[size] => 45020
)
print_r de $image[$i] donne :
1425805876.jpg
1425805876.jpg
Je pense au passage avoir un problème de sécurité ici : WHERE id = '$id'
Merci d'avance pour vos lumières !
J'ai un problème dans mon code et à force d'avoir le nez dedans, je n'arrive pas à mettre le doigt dessus ;-)
J'ai un formulaire qui me permet de récupérer 1 ou 10 images sur mon ordi et de les télécharger sur mon serveur Web. Après vérification de différents paramètres (taille, extension), je renomme mon fichier avec comme nom la date (classique) et j'informe ma bdd de ce nom dans un champs photo1, photo2...photo10.
Je rencontre les problèmes suivants :
1 - Une seule image est uploadée à chaque fois, même si plusieurs
input sont renseignés de données différentes ! (problèmes dans ma boucle ?)
2 - Les champs 'photo1', 'photo2'... de la BDD sont remplis du même nom de fichier !
3 - Quand je reviens sur le formulaire pour ajouter une 'photo5' par exemple, la 'photo1' disparaît ensuite du formulaire alors que j'aimerai qu'elle reste et que vienne s'ajouter la 5...
je pense que le problème vient du fait que je ne sais pas faire un contrôle sur un array vide....($_FILES['photo' . $i])
Mais plutôt que de long discours, voici mon code :
FORMULAIRE :
<fieldset>
<legend>Photos en ligne actuellement : </legend>
<img src="photos/<?php echo $reponse['photo1'];?>" alt="Photo 1" title="Photo principale" width="244" height="196" /><br />
<input type="file" name="photo1" /><br />
<?php
for ($i=2; $i <11 ; $i++) {?>
<img src="photos/<?php echo $reponse['photo'. $i];?>" alt="Photo <?php echo $i;?>" title="Photo <?php echo $i;?>" width="244" height="196" /><br />
<input type="file" name="photo<?php echo $i;?>" /><br />
<?php } ?>
</fieldset>
TRAITEMENT :
$image=array();
for ($i=1; $i<11 ; $i++) {
// 1 - La photo est elle bien jointe au formulaire :
if (isset($_FILES['photo' . $i]) AND $_FILES['photo' . $i]['error'] == 0) {
// 2 - La photo n'est elle pas trop grosse :
if ($_FILES['photo' . $i]['size'] <=1000000) {
// 3 - L'extension de la photo est elle autorisé :
$infosfichiers = pathinfo($_FILES['photo' . $i]['name']);
$extension_upload = $infosfichiers['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
$image[$i] = '' .time(). '.' .$extension_upload;
if (in_array($extension_upload,$extensions_autorisees)) {
// 4 - Le fichier est valide, on peut le télécharger :
move_uploaded_file($_FILES['photo' . $i]['tmp_name'],'photos/' . $image[$i]);
}
else {
$message='Le format de la photo n°' . $i . ' n\'est pas autorisé !';
}
}
else {
$message='La taille de la photo n°' . $i . ' dépasse la taille autorisée !';
}
}
}
$requete = $DB->prepare("UPDATE chambres SET prix = :nvprix, descriptif = :nvdescriptif,
commentaire = :nvcommentaire, photo1 = :nvphoto1,
photo2 = :nvphoto2, photo3 = :nvphoto3, photo4 = :nvphoto4, photo5 = :nvphoto5 WHERE id = '$id'");
$requete->execute(array(
'nvprix' => $prix,
'nvdescriptif' => $descriptif,
'nvcommentaire' => $commentaire,
'nvphoto1' => $image[1],
'nvphoto2' => $image[2],
'nvphoto3' => $image[3],
'nvphoto4' => $image[4],
'nvphoto5' => $image[5]
));
EDIT :
print_r de $_FILES['photo' . $i] donne :
Array
(
[name] => chambre-de-luxe-1269194801.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpkvWOan
[error] => 0
[size] => 41380
)
Array
(
[name] => chambre-coloniale-1269194783.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpMve222
[error] => 0
[size] => 45020
)
print_r de $image[$i] donne :
1425805876.jpg
1425805876.jpg
Je pense au passage avoir un problème de sécurité ici : WHERE id = '$id'
Merci d'avance pour vos lumières !
A voir également:
- Poster plusieurs images pour les afficher ensuite
- Afficher appdata - Guide
- Des images - Guide
- Comment poster une vidéo sur tiktok - Guide
- Afficher taille dossier windows - Guide
- Afficher les modifications word - Guide