2012-06-28 51 views
0

excecuting用的mkdir功能的PHP腳本時,我有一個403禁止頁。403禁止在PHP的mkdir

這裏是MKDIR代碼:

mkdir('uploads/'.$upload_folder.'/', 777) 

我已經試過775,666的權限,但一無所獲。 Insde我想存儲圖像,MP3的和視頻的目錄。 任何人都可以幫助我嗎?

更新1

這裏是整個腳本:

$folderStr = $_REQUEST['folderName']; 

//create SEO firndly directory name 
$upload_folder = preg_replace("'\s+'", '-', $folderStr); 

// The place the files will be uploaded to (currently a 'files' directory). 
$upload_path = 'uploads/'.$upload_folder.'/'; 

//Check whether folder exists or create with the name supplied 
if(is_dir($upload_folder)) 
echo 'directory exists'; 
else 
mkdir('uploads/'.$upload_folder.'/', 777); 

它應該使一個新的目錄到文件夾「上傳」從我得到的形式給出名字它從那裏值'文件夾名',並將表格中給出的文件上傳到創建的新目錄。 另外它不能在文件夾名稱上寫希臘字符。我必須改變才能使其工作?

+1

403將表明您沒有權限通過網絡訪問腳本,不是說你不有權創建目錄 –

+0

我該如何改變這種情況? –

+0

我在本地計算機上運行它。 –

回答

0

你所需的模式,例如前需要一個零

mkdir('uploads/'.$upload_folder.'/', 0777) 

如果使用 '777',你會得到奇怪的權限是這樣的:

dr----x--t

,而不是這樣的:

drwxrwxr-x

原因(從PHP chmod文檔):「請注意,模式不會自動假定爲一個八進制值,所以爲了確保預期的操作,你需要使用零(0)的前綴模式。「

我可以證實,這還是發生在PHP 7.0.3,儘管相關changes to integer handling:「以前,包含無效的八進制數進行文字截斷默默(0128取爲012)現在,一個無效的八進制將導致解析錯誤。」

但是0777是反正默認的,這給儘可能廣泛地獲得,所以除非要設置以後任何參數,你不需要指定它,(例如,往往以第三選項設置爲真的很有用使遞歸目錄的創建,而不是如果父不存在,創建一個錯誤。)