Manuel PHP
Précédent | Chapitre 38. Gestion des chargements de fichiers | Suivant

# Télécharger plusieurs fichiers simultanément

Le téléchargement de plusieurs fichiers est possible en utilisant des noms différents dans l'attribut `name` de la balise `input`.

Il est aussi possible de télécharger plusieurs fichiers simultanément et d'obtenir les informations sous forme de tableau. Pour cela, vous devez utiliser la syntaxe de tableau dans les noms de balises HTML, comme vous l'avez fait avec les sélections multiples et les boîtes à cocher.

> Note : Le support des téléchargements multiples a été ajouté en PHP 3.0.10.

Exemple 38-4. Télécharger plusieurs fichiers simultanément

    <form action="file-upload.php" method="post" enctype="multipart/form-data">
      Envoyez plusieurs fichiers : <br />
      <input name="userfile[]" type="file" /><br />
      <input name="userfile[]" type="file" /><br />
      <input type="submit" value="Envoyer les fichiers" />
    </form>

Lorsque le formulaire ci-dessus a été envoyé, les tableaux `$_FILES['userfile']`, `$_FILES['userfile']['name']`, et `$_FILES['userfile']['size']` seront initialisés (tout comme `$HTTP_POST_FILES` pour les versions de PHP antérieures à la 4.1.0). Lorsque register_globals est activé, les variables globales concernant les fichiers téléchargés sont aussi initialisées. Chacune d'entre elles contiendra un tableau numériquement indexé, avec les valeurs décrivant les fichiers téléchargés.

Par exemple, supposons que les fichiers `/home/test/review.html` et `/home/test/xwp.out` ont été téléchargés. Dans ce cas, `$_FILES['userfile']['name'][0]` contient `review.html` et `$_FILES['userfile']['name'][1]` contient `xwp.out`. Similairement, `$_FILES['userfile']['size'][0]` va contenir la taille du fichier `review.html`, etc.

`$_FILES['userfile']['name'][0]`, `$_FILES['userfile']['tmp_name'][0]`, `$_FILES['userfile']['size'][0]` et `$_FILES['userfile']['type'][0]` sont aussi créées.

Précédent | Sommaire | Suivant
Erreurs classiques | Niveau supérieur | Chargement par méthode PUT