3

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

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

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

请问这个解决方法?

谢谢,理查德。

4

4 回答 4

1

这解决了这个问题:

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

但是为什么不能在 mkdir 上使用递归呢?

于 2010-05-19T05:27:21.707 回答
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 )

于 2013-04-15T13:04:38.763 回答
0

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

于 2010-05-19T05:15:23.930 回答
0

您是否尝试chmod过目录?

mkdir("photos/$cat", 0777, true);
chmod("photos", 0777);
chmod("photos/$cat", 0777);
mkdir("photos/$cat/$sku", 0777);
chmod("photos/$cat/$sku", 0777);
于 2010-05-19T05:20:38.660 回答