PHP mkdir问题!

时间:2010-05-19 04:32:56

标签: php permissions file-permissions mkdir

我试图像这样创建一些目录:

@mkdir("photos/$cat/$sku", 0777, true)

它创建了具有0777权限的第一个目录,但是当它创建时,第二个目录使用000作为它的权限,因此它无法创建第三个。

这是一个解决方法吗?

谢谢, 理查德。

4 个答案:

答案 0 :(得分:1)

这解决了这个问题:

$a = @mkdir("photos/$cat/", 0777);
    @chmod("photos/$cat/", 0777);
    $b = @mkdir("photos/$cat/$sku/", 0777);
    @chmod("photos/$cat/$sku/", 0777);

但为什么不能在mkdir上使用recursive?

答案 1 :(得分:1)

我这样做了,它完美无缺:

    if (!is_dir($path)) {
        $dirs = explode('/', $path);
        $i = 0;
        $subdir = '';
        foreach ($dirs as $dir) {
            if($i > 0){$dir = '/' . $dir;}
            $subdir .= $dir;
            if(!is_dir(DIR_CACHE . $subdir)){@mkdir(DIR_CACHE . $subdir);@chmod(DIR_CACHE . $subdir, 0777);}

            $i++;
        }
    }

所以你所要做的就是定义你的路径($ path = photos / $ cat / $ sku)

答案 2 :(得分:0)

亲爱的,这是由于用户权利,请在使用mkdir函数创建任意目录时检查用户,

答案 3 :(得分:0)

您是否尝试过chmod目录?

mkdir("photos/$cat", 0777, true);
chmod("photos", 0777);
chmod("photos/$cat", 0777);
mkdir("photos/$cat/$sku", 0777);
chmod("photos/$cat/$sku", 0777);