Dans le domaine du développement Web, la possibilité de télécharger plusieurs fichiers est souvent requise pour des tâches telles que des galeries d'images, des documents systèmes de gestion, et bien d’autres. Ce didacticiel vous guidera tout au long du processus d'activation de plusieurs téléchargements de fichiers à l'aide de PHP et jQuery.
Le formulaire HTML sert d'interface où les fichiers seront sélectionnés pour le téléchargement. Ici, nous avons un champ de saisie de type "fichier" avec l'attribut "multiple" défini pour permettre la sélection de plusieurs fichiers :
<input id="myfile" type="file" name="myfile" multiple=multiple/>
Lorsque vous cliquez sur le bouton "Télécharger", la fonction sendfile() est déclenché via le gestionnaire d'événements onclick.
La fonction sendfile() utilise jQuery pour construire un objet FormData. Cet objet permet d'inclure des données de formulaire, y compris des fichiers, à envoyer au script côté serveur. Chaque fichier sélectionné est ajouté à l'objet FormData :
for (var i = 0, len = document.getElementById('myfile').files.length; i < len; i++) { fd.append("myfile", document.getElementById('myfile').files[i]); }
Côté serveur, le script uploadfile.php gère les téléchargements de fichiers :
<code class="php">$target = "uploadfolder/"; // for($i=0; $i <count($_FILES['myfile']['name']); $i++){ if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target.$_FILES['myfile']['name'])) { echo 'Successfully copied'; }else{ echo 'Sorry, could not copy'; } // }
Cependant, ce code est incomplet car il manque la boucle pour parcourir plusieurs fichiers. Vous devrez implémenter la boucle comme indiqué dans la réponse correcte fournie.
Dans l'exemple fourni dans la réponse, le code jQuery et la structure HTML sont similaire au code incomplet ci-dessus. La principale différence réside dans le script load.php :
La boucle a été implémentée pour gérer plusieurs fichiers.
<code class="php">foreach ($_FILES as $key) { if($key['error'] == UPLOAD_ERR_OK ){ $name = $key['name']; $temp = $key['tmp_name']; $size= ($key['size'] / 1000)."Kb"; move_uploaded_file($temp, $path . $name); echo " <div> <h1>File Name: $name</h1><br /> <h1>Size: $size</h1><br /> <hr> </div> "; }else{ echo $key['error']; } }
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!