2014-02-20 121 views
0

我無法在我的Web服務器中創建一個新目錄。我認爲我的代碼可以創建一個目錄。你能告訴我什麼是錯誤?Php mkdir()未在我的Web目錄中創建目錄

$path = "https://wwww.domain.com/astuces/uploads/products/".$id; 
if(!is_dir($path)){ 

    mkdir($path); 

    if(mkdir($path)){ 
     echo "mkdir is created successfully"; 
    }else{ 
     echo "directory is not created"; 
     echo mysql_error(); 
    } 
} 

它總是告訴我「目錄沒有被創建」。

+3

你爲什麼要運行'mkdir'兩次? –

+0

您不能將URL作爲參數使用mkdir。嘗試'mkdir('/ path/to/directory /'.$ id,0755,true)' –

+0

@AndyGee我正在嘗試。 – Babu

回答

3

這不僅僅是一個權限問題,你正在做不可能的事情。

$path = "https://wwww.domain.com/astuces/uploads/products/".$id; 

您永遠不能使用url作爲在服務器中創建目錄的路徑。

的路徑應該是喜歡你的Web服務器的路徑:

$path = "/path/to/your/project/astuces/uploads/products/".$id; 

並確保apache用戶具有的權限。

如果父目錄也不會在第一存在,您必須將第三個參數設置爲truemkdir的:

if(mkdir($path, 0755, true)){ 
+0

如果我使用:$ path =「../../astuces/uploads」。 DS。 「產品」。 DS。 $ ID;那麼它是允許的? – Babu

+0

其中DS表示一個簡單的正斜槓(/) – Babu

+0

@Babu僅當您擁有正確的路徑和權限時纔有效。 – xdazz

0

試試這個代碼

$ PATH = 「https://wwww.domain.com/astuces/uploads/products/」 的$ id。 ; 如果(!is_dir($路徑)){

$old_umask = umask(0); 
mkdir($path, true); 
chmod($path, 0777); 
umask($old_umask); 

if(mkdir($path)){ 
    echo "mkdir is created successfully"; 
}else{ 
    echo "directory is not created"; 
    echo mysql_error(); 
} 

}