Formulaire d'upload de fichiers en nombre infini

[Résolu]
Signaler
Messages postés
51
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
3 août 2007
-
Messages postés
51
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
3 août 2007
-
Bonjour à tous !


Voila mon problème : j'ai une page qui permet d'ajouter un message avec
une image associée à ce message, et je voudrais ajouter des champs de
formulaire pour un upload de fichiers autres qui seront affichés à
part. Jusque là, rien de bien méchant.

Cependant, j'aimerais pouvoir ajouter "virtuellement" autant de
fichiers que je souhaite en upload ! Pour ca, il faudrait que je trouve
un moyen de pouvoir ajouter des champs pour uploader ces fichiers, et
de manière infinie...

J'ai du mal à m'exprimer, mais c'est un peu comme, pour ceux qui
conaissent, le système de sondage de phpbb... je propose un premier
upload de fichier, avec un bouton à côté permettant d'ajouter un autre
champs pour uploader un autre fichier, et enfin, un bouton en dessous
pour "submitter" tout le formulaire obtenu...



Si quelqu'un sait comment faire ca, ou a une meilleure idée, qu'il
n'hésite pas ! (je maîtrise à peu près le php, mais pas le java ou
autre :( )

4 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Bah...

bon...

avant ton formulaire, tu vérifies par exemple que c'est le bouton
"ajout d'uploads" qui a été cliqué (et pas celui de la validation
"normale" de ton formulaire), puis que la variable $_POST['nbrUpload']
existe. Si elle n'existe pas, tu la fixe à 1.



Dans ton formulaire, tu crées un champ de type caché, avec pour nom 'nbrUpload', et pour valeur $_POST['nbrUpload'].

Ensuite, tu crées une boucle qui va de 0 à $_POST['nbrUpload'] et à
chaque itération de ta boucle tu crées un champ de type fichier (gaffe
au nom, hein...ne met pas le même!)

Tu ajoutes à ton formulaire un bouton "ajout d'uploads". Si on clique dessus, tu as le choix:

- celui que j'aime moins : tu appelles un js qui va incrémenter la
valeur de ton champ caché 'nbrUpload' puis qui va soumettre ton
formulaire.

- celui que je préfère : tu soumets ton formulaire, et au lieu de la
vérification simple de $_POST['nbrUpload'] que je t'indiquée au début,
tu vérifies que la variable existe, certes, tu la fixes à 1 si elle
n'existe pas, toujours, mais si elle existe, tu l'incrémentes de 1.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,



bah, ce n'est pas très compliqué.

Je t'explique comment je gère ça pour ma part :

- tu peux mettre un bouton "ajouter champ d'upload", qui créera à la
volée un nouveau champ de type file (mets donc un tableau pour le nom,
ce sera plus simple je pense, ou un index en tous cas). Ce bouton sera
en réalité un bouton de type submit).



- tu peux gérer ceci aussi en mettant ton champ FILE, et un bouton
"ajouter". A chaque clic, tu uploades, tout simplement...en restant sur
le même formulaire. Ainsi tu as l'illusion d'une possibilité d'uploads
infinis. (pour ma part je stocke la liste dans une table, et les
fivchiers dans un répertoire, que je lis pour lister les fichiers déjà
uploadés par l'utilisateur).
Messages postés
51
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
3 août 2007

Tu saurais m'expliquer un peu plus en détail l'histoire de l'ajout "à la volée" d'un champ?
Messages postés
51
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
3 août 2007

Désolé, j'étais assez fatigué ce matin, j'avais du mal à tout bien faire :D

Donc effectivement, je vais bien utiliser cette méthode, ca sera la plus simple :) (la partie en php qui incrémente, pas le js).

Merci beaucoup de ta patience :)