1

admin_add私のファイルには、次のコードが設定されていphotocategories_controller.phpます。このコードは、自宅の CentOS 開発サーバーでうまく機能します。ただし、このファイルを本番サーバーにアップロードすると機能しません。どんな助けでも大歓迎です〜

function admin_add() {
    .... //Other code here

    //On folder add, get its ID to be used as the name of the folder
    $folderID = $this->Photocategory->getLastInsertId();

    //This directory is already created
    $uploadDir = '/img/uploads/photos/';
    $serverRoot = $_SERVER['DOCUMENT_ROOT'];

    //Folder location to be created. When I print it I get
    // /home/xxxxxxx/public_html/img/uploads/photos/16 === 16 being the last inserted ID
    $directoryPath = $serverRoot.$uploadDir.$folderID;

    //I CANNOT FIGURE OUT WHAT AM I DOING WRONG HERE. IT WORKS IN MY DEVELOPMENT
    //SERVER, BUT NOT IN MY PRODUCTION SERVER       
    if(mkdir($directoryPath, 0777)){
        if(mkdir($directoryPath."/thumb", 0777)){
            $this->Session->setFlash('Success', 'default', array('class' => 'alert_success'));
        }else{
            $this->Session->setFlash('Error creating thumb', 'default', array('class' => 'alert_error'));
        }
    }else{
        $this->Session->setFlash('Error Creating Directory', 'default', array('class' => 'alert_error'));
    }   
4

2 に答える 2

0

このためには、API関数cakephpフォルダーを使用すると便利で、ディレクトリの作成がより安全で制御されます。

詳細はこちら

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html

于 2013-02-28T07:08:56.967 に答える
0

解決しました!理由はわかりませんが、運用サーバーが期待どおりにサーバー ルートを検出していませんでした。フォルダ$serverRoot = $_SERVER['DOCUMENT_ROOT'];として見ていました。public_htmlただし、webrootフォルダーが必要でした。そこで、CakePHP 独自の を使用しましWWW_ROOTた。

于 2012-06-30T12:23:27.257 に答える