2014-10-30 54 views
0

所以我有這個非常直的前言代碼創建一個用戶輸入的名稱目錄,但它不會創建。 我想創建它的文件夾是subfoolder。 當我在本地測試它時,它工作得很好,但在服務器上似乎有問題。 任何人都可以幫助我嗎?php mkdir s不工作

$title = str_replace(" ", "_", $_POST['title']); 
if (!is_dir("uploads/".$title)){ 
     mkdir("uploads/".$title, 0777); 

我想它與路徑?但我無法找出原因。

感謝名單傢伙

克里斯

+1

您是否有適當的權限來創建文件夾? – AlexL 2014-10-30 11:08:58

+0

您是否檢查了您嘗試添加此目錄的目錄的權限? – Brian 2014-10-30 11:09:03

+0

檢查你的錯誤日誌,它可能會告訴你爲什麼。例如,可能是因爲網絡服務器運行的用戶沒有擁有您嘗試創建目錄的子文件夾,組織或其他人也不允許這樣做。 (在這種可能的情況下:chown:-webserver上傳&& chmod g + rwx uploads')。 – Wrikken 2014-10-30 11:10:23

回答

1

對於大多數託管服務提供商,你必須提供完整的路徑,而不是相對一個:所以,檢查了幾個可能性(thanx的後

$root = dirname(__FILE__); // or whatever what points to root dir 

$target = $root.'/uploads/'.$title; // save to a variable, to not repeat 

if (!is_dir($target) { 
    mkdir($target, 0777); 
} 
0

您幫助球員)我意識到,我的FTP程序沒有正確顯示上傳文件夾。 當通過主機服務器接口檢查上傳文件夾時,意味着創建的文件夾確實出現。但是當我通過我的ftp程序查看文件夾是否已經創建時,它不在那裏。 所以一定有某種問題,從顯示創建的文件夾禁用我的FTP程序... 我不知道爲什麼會這樣,但儘管如此,代碼工作像這樣:

$target = "uploads/".$title; // save to a variable, to not repeat 

if (!is_dir($target)) { 
     mkdir($target); 
     chmod($target, 0777);} 

所以thanx的幫助傢伙。

Cheers Chris

+0

當您提供第二個參數時,'mkdir()'在內部調用'chmod()' – Yang 2014-10-30 15:57:10