创建可写目录


Create writable directories

对于一个项目,我正在实现一个文件上传系统。对于每个用户帐户,我希望脚本创建一个不同的子文件夹。比方说他们的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); 
?>