Cet article vous présentera quelques méthodes simples pour télécharger plusieurs fichiers en PHP.
Avant d'introduire ce contenu de connaissances, nous avons présenté en détail la méthode spécifique de téléchargement d'un seul fichier en PHP dans l'article précédent [Explication détaillée de la méthode de téléchargement de fichier PHP et son analyse des informations] , alors cet article est lié aux points de connaissances qui seront introduits aujourd'hui. Les amis qui en ont besoin peuvent s'y référer en premier.
Ci-dessous, nous vous présenterons quelques méthodes simples pour télécharger plusieurs fichiers en PHP à travers des exemples de code spécifiques.
La première méthode : utilisez une méthode de téléchargement de fichier unique
Un code de formulaire simple est le suivant :
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> 选择文件进行上传: <input type="file" name="file1"> 选择文件进行上传: <input type="file" name="file2"> 选择文件进行上传: <input type="file" name="file3"> <input type="submit" value="上传"> </form> </body> </html>
L'effet de code est le suivant :
Comme le montre la figure, nous avons choisi de télécharger trois fichiers, puis nous avons téléchargé les fichiers sur upload.php Le code PHP est le suivant :
<?php echo "<pre class="brush:php;toolbar:false">"; var_dump($_FILES);
Ensuite, nous continuons à accéder aux résultats via le navigateur comme suit :
Ici, nous obtenons le tableau bidimensionnel dans l'image, si nous voulons que le téléchargement de plusieurs fichiers nécessite une boucle foreach.
Ensuite, le code complet de upload.php est le suivant :
<?php echo "<pre class="brush:php;toolbar:false">"; var_dump($_FILES); $files = []; foreach ($_FILES as $fileInfo) { $files[] = upload_file($fileInfo); } var_dump($files); function upload_file($fileInfo, $upload = "./upload", $imagesExt = ['gif', 'png', 'jpg']) { if ($fileInfo['error'] === 0) { $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION)); if (!in_array($ext, $imagesExt)) { return "文件非法类型"; } if (!is_dir($upload)) { mkdir($upload, 0777, true); } $fileName = md5(uniqid(microtime(true), true)) . "." . $ext; $destName = $upload . "/" . $fileName; if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) { return "文件上传失败!"; } return "文件上传成功!"; } else { switch ($fileInfo['error']) { case 1: echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值'; break; case 2: echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值'; break; case 3: echo '文件只有部分被上传'; break; case 4: echo '没有文件被上传'; break; case 6: echo '找不到临时文件夹'; break; case 7: echo '文件写入失败'; break; } } }
Enfin, nous sélectionnons plusieurs fichiers à télécharger, et le résultat est le suivant :
À ce stade, plusieurs opérations de téléchargement de fichiers ont été mises en œuvre avec succès.
Deuxième méthode : Utilisation de la méthode multiple en HTML5
Exemple de code d'interface HTML pour télécharger plusieurs fichiers Comme suit :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> 选择文件进行上传: <input type="file" name="file[]" multiple=""><br> <input type="submit" value="上传"> </form> </body> </html>
L'effet de ce code est le suivant :
Nous avons utilisé HTML 5 sous la forme ici Le multiple attribut dans, cet attribut indique que le champ de saisie peut sélectionner plusieurs valeurs, c'est-à-dire que lorsque cet attribut est sélectionné, ce champ peut accepter plusieurs valeurs. Le multiple est un attribut important pour nous afin de mettre en œuvre plusieurs téléchargements de fichiers. En même temps, nous définissons le nom dans l'entrée sur un tableau file[].
Ensuite, nous sélectionnons plusieurs fichiers à télécharger, comme indiqué ci-dessous :
Comme indiqué sur l'image nous avons sélectionné Trois images, puis utilisé le fichier upload.php suivant pour recevoir les trois données.
L'exemple de code upload.php est le suivant :
<?php echo "<pre class="brush:php;toolbar:false">"; var_dump($_FILES); $files = []; foreach ($_FILES as $fileInfo) { $files[] = upload_file($fileInfo); } var_dump($files); function upload_file($fileInfo, $upload = "./upload", $imagesExt = ['gif', 'png', 'jpg']) { if ($fileInfo['error'] === 0) { $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION)); if (!in_array($ext, $imagesExt)) { return "文件非法类型"; } if (!is_dir($upload)) { mkdir($upload, 0777, true); } $fileName = md5(uniqid(microtime(true), true)) . "." . $ext; $destName = $upload . "/" . $fileName; if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) { return "文件上传失败!"; } return "文件上传成功!"; } else { switch ($fileInfo['error']) { case 1: echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值'; break; case 2: echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值'; break; case 3: echo '文件只有部分被上传'; break; case 4: echo '没有文件被上传'; break; case 6: echo '找不到临时文件夹'; break; case 7: echo '文件写入失败'; break; } } }
Après avoir téléchargé trois fichiers à ce moment-là, accès via le navigateur, le résultat est le suivant :
Nous pouvons voir sur l'image que les informations du fichier téléchargé sont affichées sous la forme d'un tableau tridimensionnel, dans lequel les noms, types, chemins d'emplacement de stockage temporaire, les tailles et autres informations des trois images sont placées séparément dans un tableau.
Cependant, nous pouvons constater que la méthode d'analyse des informations dans le fichier upload.php n'a aucun effet sur les fichiers téléchargés avec l'attribut multiple.
Ensuite, cet article vous présentera d'abord deux méthodes simples d'utilisation de PHP pour implémenter plusieurs téléchargements de fichiers à l'aide de l'attribut multiple. Dans les articles suivants, nous continuerons à présenter en détail comment PHP implémente plusieurs téléchargements de fichiers et d'informations. L'analyse est l'explication détaillée de la deuxième méthode !
Si vous souhaitez en savoir plus sur PHP, vous pouvez suivre le site Web PHP chinois Tutoriel vidéo PHP. Bienvenue à tous à consulter et à étudier !
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!