2010-10-05 90 views
0

我有一個腳本運行在一個臨時站點上,它需要上傳的圖像,創建一個目錄(如果存在)並將圖像上傳到所述目錄。使用chmodDirectory創建目錄的問題

我想改變創建到活網站的目錄,沒有運氣。非常確定的是,這塊代碼仍在尋找分段URL而不是直播。

function chmodDirectory($path = '.', $level = 0){ 
$ignore = array('cgi-bin', '.', '..'); 

$dh = @opendir($path); 


while(false !== ($file = readdir($dh))){ // Loop through the directory 
    if(!in_array($file, $ignore)){ 
    if(is_dir("$path/$file")){ 
     chmod("$path/$file",0777); 
     chmodDirectory("$path/$file", ($level+1)); 
    } else { 
     chmod("$path/$file",0777); // desired permission settings 
    }//elseif 

    }//if in array 

}//while 

closedir($dh); 

} //功能

?> 提前感謝您的幫助!

編輯:問題在於即使我已經改變了路徑和數據庫存儲正確的URL,我希望被創建或訪問的目錄仍然在臨時目錄上創建/訪問。

+0

你沒有描述什麼出了問題,預期的結果是什麼,你得到什麼錯誤...... – 2010-10-05 18:03:43

+0

我已經編輯它。只是再次澄清。它正在站點的暫存部分創建目錄,我不確定它在哪裏獲取$ path以及如何將其設置爲我所需的目錄。 – 2010-10-05 18:13:49

+1

刪除'opendir'前面的'@',看看它是否可以打開'$ path' .... – Wrikken 2010-10-05 18:27:11

回答

0

PHP中的文件相關命令都是「當前工作目錄」。你開始chmodDirectory().作爲路徑,這意味着「當前工作目錄」,這是默認的腳本存在的目錄。

如果您正在運行暫存站點作爲「活的「網站,沒有辦法讓這個功能成爲實時目錄的一部分,因爲你要離開相關的''。目錄,只有深入挖掘。例如,如果你的腳本是:

/home/sites/example.com/htdocs/staging/v1.1/upload.php 

再處理的第一個目錄將是

/home/sites/example.com/htdocs/staging/v1.1/ 

如果你想啓動過程中的「活」區,你必須調用與始發路徑的功能:

或更好:

chmodDirectory('/home/sites/example.com/htdocs/'); // start at this absolute path 

作爲路徑,所以它將在「活」版本中工作,而不是在暫存區域內開始。

0

嘿,夥計們,感謝您的幫助......錯誤實際上是從php.ini設置中的open_basedir發生的。我無法寫一個目錄,因爲我在一個子域目錄下。