在PHP中,可以使用
glob()
函数来提交多个文件夹的数据。$files = glob("*.txt");
在PHP中,可以使用$_FILES
全局数组来处理多个文件夹的上传,以下是一个详细的步骤:
1、创建一个HTML表单,用于选择要上传的文件和文件夹,可以使用<input type="file">
标签来选择单个文件,使用<input type="text" name="folder[]">
标签来选择多个文件夹。
<!DOCTYPE html> <html> <head> <title>Upload Files and Folders</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/formdata"> <label for="file">Select a file:</label> <input type="file" name="file"><br><br> <label for="folder">Select folders (separated by commas):</label> <input type="text" name="folder[]"><br><br> <input type="submit" value="Upload"> </form> </body> </html>
2、接下来,在upload.php
文件中处理表单数据,检查是否有文件或文件夹被选中,遍历所有选中的文件和文件夹,并将它们保存到指定的目标位置。
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $files = $_FILES['file']; $folders = isset($_POST['folder']) ? explode(',', $_POST['folder'][0]) : []; if (!empty($files['name'])) { $targetDir = 'uploads/'; $targetFile = $targetDir . basename($files['name']); move_uploaded_file($files['tmp_name'], $targetFile); } if (!empty($folders)) { $targetDir = 'uploads/'; foreach ($folders as $folder) { $folderName = trim($folder); $folderTargetDir = $targetDir . $folderName; if (!is_dir($folderTargetDir)) { mkdir($folderTargetDir); } } } } ?>
3、创建一个单元表格,列出已上传的文件和文件夹。
<table border="1"> <tr> <th>File</th> <th>Folder</th> </tr> <?php if (!empty($files['name'])) { echo "<tr>"; echo "<td>" . basename($files['name']) . "</td>"; echo "<td></td>"; echo "</tr>"; } if (!empty($folders)) { foreach ($folders as $folder) { $folderName = trim($folder); echo "<tr>"; echo "<td></td>"; echo "<td>" . $folderName . "</td>"; echo "</tr>"; } } ?> </table>
相关问题与解答:
1、如何限制用户只能上传特定类型的文件?只允许上传图片文件(如jpg、png)。
答:可以在HTML表单中使用accept
属性来限制用户只能选择特定类型的文件,要限制用户只能上传jpg和png文件,可以将表单代码修改为:
<form action="upload.php" method="post" enctype="multipart/formdata"> <!... > <input type="file" name="file" accept="image/jpeg, image/png"><br><br> <!... > </form>
2、如果用户没有选择任何文件或文件夹,如何处理?
答:可以在处理表单数据之前检查$_FILES
和$_POST['folder']
数组是否为空,如果为空,可以显示一条错误消息,提示用户至少需要选择一个文件或文件夹。
if (empty($files['name']) && empty($_POST['folder'])) { echo "Please select at least one file or folder to upload."; } else { // ... handle the form data ... }
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/562906.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复