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 :
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 !'; } } }