为什么无法创建此目录?

时间:2011-11-03 09:17:50

标签: php linux

我想在Linux系统中创建一个目录。包含新创建的目录的父目录具有777权限。问题是如果新目录不包含子目录,则会成功创建。但是当它包含一个子目录时,例如docs/photos,那么就不会创建子目录(这里/照片)!那么如何创建子目录?

以下是代码:

    if (!file_exists($rep))
    {
        if (mkdir($rep))
        {
            move_uploaded_file($_FILES['upload_field']['tmp_name'] , $rep."/"."photo".$image_id.".png");
        }
    }

3 个答案:

答案 0 :(得分:1)

默认情况下,mkdir不会递归创建子目录。如果您需要此类行为,则必须添加recursive参数:mkdir($rep, 0777, true)。有关详细信息,请参阅doc

(顺便说一句,你应该避免777权限,他们经常导致安全问题。)

答案 1 :(得分:1)

mkdir的文档表明您应该使用$recursive参数。

  

recursive

     

允许创建路径名中指定的嵌套目录。默认为FALSE。

阅读文档以供使用。

答案 2 :(得分:0)

还有第三个参数,您必须设置为TRUE才能使其正常工作。此参数用于递归。否则PHP只会创建“root”目录

http://de.php.net/mkdir

相关问题