1

我必须在 php 中创建一个自定义模块,场景是我正在尝试将用户 pdf 文档上传到每个用户的单独文件夹中。例如 Uploads 文件夹-->User1 文件夹-->pdf1.pdf。

对于单个用户,应该只有一个文件夹,以便用户可以在分配的文件夹上上传多个文档。

总而言之,我有一个带有 2 个浏览按钮的表单,当用户提交一个文件夹时,将在默认文件夹(上传)名称 User1 中创建一个文件夹,然后他的所有 3 个文档都应该上传到 User1 文件夹中。

我可以轻松地将文件上传到主上传文件夹,但无法将文件移动到特定的用户文件夹。

<?php
if ($_POST['submit']) {
    if (isset($_FILES['image'])) {
        $errors = array();
        $file_name = $_FILES['image']['name'];
        $file_size = $_FILES['image']['size'];
        $file_tmp = $_FILES['image']['tmp_name'];
        $file_type = $_FILES['image']['type'];

        $file_ext = strtolower(end(explode('.', $_FILES['image']['name'])));
        $extensions = array("pdf", "docx", "doc");

        if (in_array($file_ext, $extensions) === false) {
            echo "Extension not allowed, please choose a pdf,docx or doc format.";
        }
        if ($file_size > 2097152) {
            echo 'File size must be exactly 2 MB';
        }
        if (empty($errors) == true) {
            $path = 'uploads/' . $file_name;

            //mkdir($path, 0777, true);
            //$dirn=mkdir('uploads/'.$file_name,0777,true);


            move_uploaded_file($file_tmp, $path);

            echo "Success";
        } else {
            print_r($errors);
        }
    }
}
?>

html

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="file" name="image2">
    <br>
    <input type="submit" value="Upload" name="submit">
</form>
4

2 回答 2

2

当用户使用用户名在您的上传文件夹中创建一个目录时......上传时这样做......

$dir_path='uploads/' . $_SESSION['username'] . '/' . $file;
于 2013-08-21T07:54:36.807 回答
0

取决于您存储用户 ID 的方式,可能类似于:

$path = 'uploads/' . $_SESSION['user-id'] . '/' . $file_name;
于 2013-08-21T07:41:09.177 回答