2010-09-05 101 views
4

我有一個用戶系統,當你註冊一個賬戶時,它應該爲你自動創建一個新的文件夾。如何讓CodeIgniter創建新文件夾?

我的東西放在一起的mkdir的線( './上傳/'。$這個 - >會話級>用戶數據( 'ID'),0,真)在我註冊控制器但徒勞無功。

有人知道如何讓它工作嗎?

回答

2

您是否設置了正確的權限? Codeigniter或任何其他PHP腳本,由於CHMOD值不正確而不允許創建任何文件或目錄。在大多數情況下,755或775的值應該可以做到。您可以使用命令行或使用FTP應用程序更改這些值(大多數應用程序可以這樣做)。還要確保所有者或組被設置爲與運行Web服務器時相同的用戶(大多數情況下爲www-data)。

實例:

chmod -R 775 /var/www/username/codeigniterapp.com/some_dir 

可以用 「CHOWN」 命令改變它的組/用戶:

chown -R www-data:someuser /var/www/username/codeigniterapp.com/some_dir 

注意,-R標誌指示命令遞歸執行本身。如果您只想更改頂級目錄的權限,則可以簡單地刪除-R標誌。

4

你有沒有嘗試設置權限在創建文件夾,像做:

 
mkdir('./upload/' . $this->session->userdata('id'), 0777); 
0

我有一個大膽的想法,但可能是你的問題的完美解決方案。它從一開始就正確地設置了權限。我的想法是使用CodeIngniter的FTP類,然後用FTP創建目錄。

$this->ftp->mkdir('/public_html/profile_pictures/username/', DIR_WRITE_MODE); 

然後用下面的代碼跟進,使允許值777

$this->ftp->chmod('/public_html/profile_pictures/username/', DIR_WRITE_MODE); 

然後刪除該目錄也很容易。

$this->ftp->delete_dir('/public_html/profile_pictures/username/') 

就像我說的很瘋狂的想法!