0

グーグルで答えを見つけることができなかったので、これは他の方法を試す前の私の最後の試みです。

私はこのようなスクリプトを持っています:

        // get current year and month
        $cur_year = date('Y');
        $cur_month = date('m');
        $long_type = $this->getFile_longtype();

        $folder = $_SERVER['DOCUMENT_ROOT']."/".FOLDER_CMS."/uploads/$long_type/$cur_year/$cur_month";

        // check whether the folder exists
        if(!is_dir($folder)){

            // try to make the folder recursively
            if(!mkdir($folder,"0777",true)){

                logError($message, __FILE__, __LINE__);
                throw new Exception("Failure creating proper directories");

            }

        }

それを機能させるために、uploadsディレクトリとそのすべてのファイルとdirsを777にchmodしました(ここでの提案はもっと良いですか?)

longタイプは「images」と評価され、これはサーバー上にすでに作成されているディレクトリです。

ここで、スクリプトは、アクセス許可341を持つyearという名前のフォルダーを作成します。これは、再帰的なフォルダーの蓄積を終了するか、コンテンツをブロックするため、必要ありません。

ヘルプや提案はありますか?

phpバージョン:5.2.5

configureコマンド:'./configure''--enable-bcmath''--enable-calendar''--enable-exif''--enable-ftp''--enable-gd-native-ttf''--enable- libxml'' --enable-magic-quotes'' --enable-mbstring'' --enable-pdo = shared'' --enable-soap'' --enable-sockets'' --enable-wddx''- -enable-zip'' --prefix = / usr / local'' --with-apxs2 = / usr / local / apache / bin / apxs'' --with-bz2'' --with-curl = / opt / curlssl /'' --with-curlwrappers'' --with-freetype-dir = / usr'' --with-gd'' --with-gettext'' --with-imap = / opt / php_with_imap_client /'' --with-imap-ssl = / usr'' --with-jpeg-dir = / usr'' --with-kerberos'' --with-libexpat-dir = / usr'' --with-libxml-dir = / opt / xml2''--with-libxml-dir = / opt / xml2 /'' --with-mcrypt = / opt / libmcrypt /'' --with-mhash = / opt / mhash /'' --with-mssql = / usr / local / freetds'' --with-mysql = / usr'' --with-mysql-sock = / var / lib / mysql / mysql.sock'' --with-mysqli = / usr / bin / mysql_config''- -with-openssl = / usr'' --with-openssl-dir = / usr'' --with-pdo-mysql = shared'' --with-pdo-sqlite = shared'' --with-png-dir = / usr'' --with-pspell'' --with-sqlite = shared'' --with-tidy = / opt / tidy /'' --with-ttf'' --with-xmlrpc''- with-xpm-dir = / usr'' --with-xsl = / opt / xslt /'' --with-zlib'' --with-zlib-dir = / usr '--with-mysql-sock = / var / lib / mysql / mysql.sock'' --with-mysqli = / usr / bin / mysql_config'' --with-openssl = / usr'' --with-openssl- dir = / usr'' --with-pdo-mysql = shared'' --with-pdo-sqlite = shared'' --with-png-dir = / usr'' --with-pspell'' --with -sqlite = shared'' --with-tidy = / opt / tidy /'' --with-ttf'' --with-xmlrpc'' --with-xpm-dir = / usr'' --with-xsl = / opt / xslt /'' --with-zlib'' --with-zlib-dir = / usr '--with-mysql-sock = / var / lib / mysql / mysql.sock'' --with-mysqli = / usr / bin / mysql_config'' --with-openssl = / usr'' --with-openssl- dir = / usr'' --with-pdo-mysql = shared'' --with-pdo-sqlite = shared'' --with-png-dir = / usr'' --with-pspell'' --with -sqlite = shared'' --with-tidy = / opt / tidy /'' --with-ttf'' --with-xmlrpc'' --with-xpm-dir = / usr'' --with-xsl = / opt / xslt /'' --with-zlib'' --with-zlib-dir = / usr '--with-ttf'' --with-xmlrpc'' --with-xpm-dir = / usr'' --with-xsl = / opt / xslt /'' --with-zlib'' --with- zlib-dir = / usr '--with-ttf'' --with-xmlrpc'' --with-xpm-dir = / usr'' --with-xsl = / opt / xslt /'' --with-zlib'' --with- zlib-dir = / usr '

4

3 に答える 3

3

文字列「0777」は使用せず、0777を使用してください。

于 2010-09-24T14:25:11.153 に答える
1

Alexが述べたように、STRINGではなくOCTAL値も入力すると想定します。セキュリティ上の理由から、代わりに0755を使用するフォルダに完全なアクセス許可を与えることは決してありません

于 2010-09-24T14:31:04.763 に答える
0

実際のアクセス許可は、mkdirおよびumaskへのパラメーターによって異なります。umaskは、mkdirに与えられた権限から差し引かれます。mkdirを実行する前に、umaskを0に設定してみてください。

于 2010-09-24T14:21:29.210 に答える