2012-07-17 109 views
0

我有一個小問題。我已經搜索了堆棧溢出的類似的東西,但他們似乎沒有幫助(據我所知)。mkdir寫權限

我在php中使用mkdir,它工作可愛並且每個月都創建一個新目錄。不過,我剛剛注意到,月份更改後,目錄正在創建沒有寫入權限。我相信這是關於如何使用0777來允許最大訪問權限的,但是這樣做並沒有改變,我相信這被設置爲默認的out。

下面是代碼:

if (!is_dir($this->config->item('rootpath').'/assets/documents/'.$date)) 
{ 
    $subDirectory = mkdir($this->config->item('rootpath').'/assets/documents/'.$date, 0777); 
} 
else 
    $subDirectory = $this->config->item('rootpath').'/assets/documents/'.$date; 

它只是試圖上傳一個文件,該權限被拒絕後,我可以去和生成的文件夾設置寫入權限,並重新提交文件上傳。

+1

這可能與你的umask做。嘗試$ oldumask = umask(0); mkdir('your_dir',0777);的umask($ oldumask); – Doa 2012-07-17 12:36:55

回答

2

添加正確的權限旁邊mkdir這樣的:

$subDirectory = mkdir($this->config->item('rootpath') . '/assets/documents/' . $date, 0777); 
+0

這就是我的意思。我已經開始了,但是我相信沒有它寫,它默認爲0777。即使有這個或0755最後,文件夾正在創建只讀? – 2012-07-17 12:17:11

+0

對我個人而言,如果沒有顯示權限,我不會獲得644 +,如果您的文件夾擁有777權限,那麼您不會在寫入時遇到問題。 – Peon 2012-07-17 12:23:23

+0

好吧。然而,假設我的代碼現在包含這個確切位置,並且沒有改變......這就是發生了什麼。所以我覺得問題在別處...... – 2012-07-17 12:27:17