我正在尝试创建一个存储所有用户个人资料图片的目录。每当我点击上传按钮时,它会说: 警告:mkdir():第60行/Applications/XAMPP/xamppfiles/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>
答案 0 :(得分:1)
命令
mkdir("userdata/profile_pics/$rand_dir_name", 0777);
只会为新创建的目录设置权限。您需要更改要在其中创建文件夹的目录的权限。
答案 1 :(得分:1)
首先尝试cd进入你的个人资料pics目录(并确保你有写权限),然后在那里创建目录。
chdir('userdata/profile_pics'); // Make sure this is writable
mkdir($rand_dir_name, 0755);
除非您想让系统上的任何用户全局写入文件夹,否则chmod 755应该足以允许Web服务器上传到目录中。