Dans vos efforts avec PHP, vous avez rencontré un obstacle lorsque vous tentez de télécharger plusieurs fichiers. Explorons comment vous pouvez surmonter ce défi en examinant l'extrait de code fourni et en résolvant le problème.
Le fichier HTML comporte un formulaire avec un champ de saisie de fichier qui permet plusieurs sélections. (multiple=multiple). Un bouton déclenche la fonction sendfile() lors d'un clic, initiant le processus de téléchargement. La fonction sendfile() crée un objet FormData et parcourt les fichiers sélectionnés, en les ajoutant à la charge utile de données. La fonction ajax() de jQuery est ensuite utilisée pour envoyer les données à uploadfile.php pour traitement.
Le fichier PHP (uploadfile.php) définit un répertoire cible et tente de déplacer les fichiers téléchargés un par un.
Le code fourni tente par erreur de déplacer chaque fichier téléchargé un par un, ce qui fonctionne pour un seul fichier mais pas pour plusieurs sélections. Le nœud du problème réside dans la construction de la boucle for.
La solution appropriée consiste à utiliser une boucle foreach plus inclusive pour parcourir les fichiers téléchargés. Cette approche garantit que chaque fichier est traité et déplacé vers le répertoire cible.
Pour y parvenir, les ajustements suivants à uploadfile.php sont requis :
<code class="php">foreach ($_FILES['myfile']['name'] as $i => $name) { if (move_uploaded_file($_FILES['myfile']['tmp_name'][$i], $target . $name)) { echo 'Successfully copied'; } else { echo 'Sorry, could not copy'; } }</code>
Cette version raffinée gère correctement plusieurs fichiers en parcourant le nom et le chemin temporaire de chaque fichier, ce qui permet de les déplacer individuellement. La boucle garantit que chaque fichier sélectionné est pris en compte et déplacé vers le répertoire cible spécifié.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!