对于一个项目,我正在实现一个文件上传系统。对于每个用户帐户,我希望脚本创建一个不同的子文件夹。比方说他们的user_id。
每次添加用户时,系统都会为他们自己的上传创建一个新的子文件夹。例如:
上传/-user1-user2-user3
通过执行mkdir('Uploads/'.$user_id,0777);它将创建一个新的子文件夹。一切都很好。
但是,我的应用程序无法写入此文件夹。如何让php生成具有所需文件权限的目录?我尝试过使用chmod,但没有成功。
这可能有助于chmod和mkdir
$dirMode = 0777;
mkdir($directory, $dirMode, true);
// chmod the directory since it doesn't seem to work on recursive paths
chmod($directory, $dirMode);
对于mkdir,在Windows上会忽略模式。0777是默认值。第三个参数是递归的,它允许创建路径名中指定的嵌套目录。
有时使用指定模式以外的其他模式创建目录(0755而不是0777等)。解决这个问题:
<?php
$old = umask(0);
mkdir($dir,0777);
umask($old);
?>