0

Bucharest/Waterfall/a.php というフォルダー階層があります。サーバー上にディレクトリを作成するための私のコード スニペットは次のとおりです。

if(!is_dir($this->folder)){  
                $old_umask = umask(0);
                mkdir($this->folder, 0777);  
                umask($old_umask);
                }
                chmod($this->folder, 0777);

            // Moves current file to upload destination
            if(move_uploaded_file($current['tmp_name'],$uploadFile))
                return true;

すべてのファイルがサーバーにアップロードされます。ここでの問題は、親フォルダー、つまりブカレストのパーミッションが 755 で、内部フォルダーのパーミッションが 777 であることです。$this->folder にはブカレスト/ウォーターフォールとしての値があります。ブカレストには 755 の許可が与えられ、滝には 777 の許可が与えられます。私のコードによれば、ブカレストにも 777 許可を与える必要があります。

私もchmodを試しましたが、すべて無駄でした。親フォルダーに完全なアクセス許可を与えたい。

4

2 に答える 2

1

is_dir($this->folder);ファイルが存在しないことではなく、ディレクトリではないことがわかります。もちろん、ディレクトリが既に存在する場合は mkdir できません。

また、ディレクトリが既に存在する場合、ドキュメントによると、 php を実行しているユーザーがそのディレクトリを所有するユーザーと同じでない場合、chmod は何もしません。

于 2013-10-28T08:47:29.147 に答える
0

チェックしているフォルダはすでにサブフォルダですか? その場合は、最初に親フォルダーを作成します。

すなわち

mkdir('/tmp/test1/test2/test3/test4');

「/tmp/test1/test2/test3」が存在しない場合は失敗します

于 2013-10-28T08:52:38.560 に答える