3

私はこのようないくつかのdirを作成しようとしています:

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

0777のアクセス許可で最初のディレクトリを作成しますが、2番目のディレクトリを作成すると、パーマとして000が使用されるため、3番目のディレクトリの作成に失敗します。

これを回避してください。

ありがとう、リチャード。

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 に答える