私はこのようないくつかのdirを作成しようとしています:
@mkdir("photos/$cat/$sku", 0777, true)
0777のアクセス許可で最初のディレクトリを作成しますが、2番目のディレクトリを作成すると、パーマとして000が使用されるため、3番目のディレクトリの作成に失敗します。
これを回避してください。
ありがとう、リチャード。
私はこのようないくつかのdirを作成しようとしています:
@mkdir("photos/$cat/$sku", 0777, true)
0777のアクセス許可で最初のディレクトリを作成しますが、2番目のディレクトリを作成すると、パーマとして000が使用されるため、3番目のディレクトリの作成に失敗します。
これを回避してください。
ありがとう、リチャード。
これで問題は解決しました。
$a = @mkdir("photos/$cat/", 0777);
@chmod("photos/$cat/", 0777);
$b = @mkdir("photos/$cat/$sku/", 0777);
@chmod("photos/$cat/$sku/", 0777);
しかし、なぜmkdirで再帰を使用できないのですか?
私はこれをしました、そしてそれは完璧に働きます:
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)
これはユーザー権限によるものです。mkdir関数を使用して任意のディレクトリを作成するときにユーザーを確認してください。
chmod
ディレクトリを作成してみましたか?
mkdir("photos/$cat", 0777, true);
chmod("photos", 0777);
chmod("photos/$cat", 0777);
mkdir("photos/$cat/$sku", 0777);
chmod("photos/$cat/$sku", 0777);