我的mkdir()函数告诉我;我没有权限


My mkdir() function tells me I don't have permission

我正在尝试创建一个目录来存储所有用户的个人资料图片。每当我点击上传按钮时,它都会显示:警告:mkdir():第60行上/Applications/XAMPP/examplepfiles/htdocs/testing/account_settings.php中的权限被拒绝

这是mkdir()代码:

$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$rand_dir_name = substr(str_shuffle($chars), 0, 15);
mkdir("userdata/profile_pics/$rand_dir_name");

我尝试更改权限:

mkdir("userdata/profile_pics/$rand_dir_name", 0777);

我仍然得到拒绝的许可。我做错了什么?

PS:完整代码:

<?php
if (isset($_FILES['profilepic'])) {
    if (((@$_FILES['profilepic'] ['type']=='image/jpeg') || (@$_FILES['profilepic']     ['type']=='image/png') || (@$_FILES['profilepic'] ['type']=='image/gif')) &&     (@$_FILES['profilepic'] ['size'] < 1048576)) {
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $rand_dir_name = substr(str_shuffle($chars), 0, 15);
        mkdir("userdata/profile_pics/$rand_dir_name", 0777);
    } else {
    echo "Upload failed";
    }
}
?>

上传表单:

<form action="" method="POST" enctype="multipart/form-data">
    <img src="<?php echo $profile_pic; ?>" width="70"><br>
    <input type="file" name="profilepic"><br>
    <input type="submit" name="uploadpic" value="Upload Image">
</form>
命令
mkdir("userdata/profile_pics/$rand_dir_name", 0777);

将仅为新创建的目录设置权限。您需要更改尝试在中创建文件夹的目录的权限。

首先尝试cd到您的配置文件pics目录中(并确保您在其中具有写入权限),然后在其中创建目录。

chdir('userdata/profile_pics'); // Make sure this is writable
mkdir($rand_dir_name, 0755);

除非你想让系统上的任何用户都能全局写入文件夹,否则chmod 755应该足以允许网络服务器上传到目录中。