|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 52 ![]() |
Bonsoir @ tous,
Ce qui m'amène aujourd'hui, c'est le traitement (en mode MODIFICATION) de plusieurs champs <input type="file" value="fichier"> en un seul envoi du même formulaire : mon pb se situe donc au niveau de la BOUCLE à effectuer pour tester chacun de ces fichiers les uns après les autres. A l'origine mon code ressemble à ça : il s'agit de valider/uploader/màj BDD concernant 3 photos pour une même galerie : Code :
- vérifier quel(s) champ(s) "file" a (ont) été renseigné(s) : donc si $_FILES['photo1']['error']!=4 puis si $_FILES['photo2']['error']!=4 puis si $_FILES['photo3']['error']!=4) -> si l'utilisateur n'a pas renseigné de fichier dans le formulaire, c'est qu'il veut conserver le fichier déjà existant, sinon, ça eut dire il veut remplacer le fichier existant par un nouveau (je suis en mode MODIFICATION, souvenez-vous !) - pour chacun de ces 3 fichiers et si ($_FILES['photo...']['error']!=4) : vérifier la taille, le format, le type MIME (et autres tests dont je ne vous donne pas le détail parce que je maîtrise !) etc... et donner une alerte si erreur... Bon ça, je sais faire... - et si un ou plusieurs de ces 3 fichiers ont été renseignés, uploader ce(s) fichier(s) et mettre à jour la BDD en conséquence (ça aussi je sais faire, ce n'est pas le pb !) Là où je coince, c'est pour optimiser l'écriture de mon fichier "traitement.php". Bien sûr, je pourrais traiter chacun de ces 3 fichiers séparément et à la suite les uns des autres, mais ça va alourdir la procédure vu que, pour chacun des 3 champs "file" de mon formulaire, je vais me retrouver avec un bon demi-milliers de lignes de code et 3 requêtes de MàJ de ma base de données à la suite...pas glop ! Alors si une boucle, traitant tour à tour les 3 champs "file", pouvait être implémentée, ça simplifierait drôlement mon code !!! Mais là, je bloque... Je rêve d'ajouter une boucle du genre : for ($i=1; $i<4;$i++) {je traite mon fichier $_FILES[photo.$i]; blablabla...} mais ça marche pas !!! Voilou... Merci d'avance @+ |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 116 ![]() |
plutôt faire photo[]
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 52 ![]() |
Salut stealth35, et surtout merci pour ta réaction super-rapide !!!
J'ai fait ce que tu m'as dit mais ça marche pas, ou alors (et sûrement), je me suis planté : Donc dans mon form, j'ai mis Code :
Code :
J'ai dû raté un truc... Voilou... |
||||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 116 ![]() |
oula non c'est juste pour le name, pas besion non plus de mettre de valeur c'est juste photo[] pour chaque name, ensuite fait un print_r($_FILES) et tu comprendras
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 | ||
![]() ![]() |
Code :
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 116 ![]() |
pourquoi un for avec avec un sizeof (qui est un alias au passage), un foreach suffit, les vraies boucles for c'est :
for($x = 0, $t = count($_FILES['photo']['name']); $x < $t; ++$x)
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 52 ![]() |
Un grand merci, grâce à vous deux j'ai [enfin] compris le principe !
![]() @+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com