PHP 文件根据唯一的用户 ID 上传到目录


PHP file upload to directory based upon unique user id

我似乎无法获取目录以在文件路径中获取用户 id 变量 ($id)。直接上传到成员文件夹没有问题,但是一旦我在注册期间尝试根据用户ID创建的唯一文件夹,我就会被阻止。

以下是我到目前为止拼凑的内容:

<?php
$id = $_SESSION['id'];
$udir= "members/.$id./";
$ufile = $udir . basename($_FILES['file']['name']);
$allexts = array("jpg", "jpeg", "gif", "png");
$ext = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    || ($_FILES["file"]["type"] == "image/png"))
    && ($_FILES["file"]["size"] < 2000000)
    && in_array($ext, $allexts)){
    if (move_uploaded_file($_FILES['file']['tmp_name'], $ufile)) {
        echo "File upload was successful.";
    } else {
        echo "An error has occured. Please try again.";
    }
} else {
    echo "Invalid file type. Please try again.";
} ?>

试试这个

if(!is_dir($udir)){
    mkdir("members/".$id, 0777);
}

您的代码:-

<?php
$id = $_SESSION['id'];
$udir= "members/".$id."/";
if(!is_dir($udir)){
    mkdir("members/".$id, 0777);
}
$ufile = $udir . basename($_FILES['file']['name']);
$allexts = array("jpg", "jpeg", "gif", "png");
$ext = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    || ($_FILES["file"]["type"] == "image/png"))
    && ($_FILES["file"]["size"] < 2000000)
    && in_array($ext, $allexts)){
    if (move_uploaded_file($_FILES['file']['tmp_name'], $ufile)) {
        echo "File upload was successful.";
    } else {
        echo "An error has occured. Please try again.";
    }
} else {
    echo "Invalid file type. Please try again.";
}