当前位置:首页 > 行业动态 > 正文

php中如何提交多个文件夹的数据

在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 ...
}
0