我正在尝试创建一个目录来存储所有用户的个人资料图片。每当我点击上传按钮时,它都会显示:警告: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应该足以允许网络服务器上传到目录中。