2013-07-23 97 views
0

所以我有localhost,我正在codeigniter上構建我的web應用程序。我有這個作爲一個功能的一部分,使一個目錄:不確定爲什麼mkdir函數不起作用?

mkdir(base_url() . 'assets/img/' . $_POST['cells']['slug'] . '/'); 

應該創建目錄:

http://localhost/sitedirectory/assets/img/slug/

我不知道爲什麼不工作。

+0

文件系統調用,如mkdir()應該使用文件系統引用,而不是url引用 –

回答

2

base_url將是一個HTTP URL。您無法在HTTP URL上創建目錄,您必須在文件系統上創建它們。 (你的Web服務器可以再上目錄映射到HTTP URL)的

+0

啊,所以只是localhost/sitedirectory/assets/img/slug /會好嗎? – styke

+0

當前工作目錄不太可能包含名爲「localhost」的子目錄。您需要爲文件系統的目錄結構做一些適當的操作。 – Quentin

+0

啊,對不起,我不太熟悉目錄和文件系統的工作方式。如果我理解正確,getcwd()返回/ sitedirectory /,所以我必須從那裏建立字符串 - 所以我只需要調用mkdir('/ assets/img/slug /)? – styke

0

你想要做的是這樣的:

mkdir(APPPATH . 'assets/img/' . $_POST['cells']['slug'] . '/'); 

這裏有一些其他的可能性

// System Directory Path 
SYSDIR 

// Application Directory Path 
APPPATH 

還需要很看看路徑助手!

2

mkdir(base_url() . 'assets/img/' . $_POST['cells']['slug'] . '/'); 

代替你必須使用: -

mkdir($_SERVER['DOCUMENT_ROOT'] . 'FOlder_Name/assets/img/' . $_POST['cells']['slug'] . '/'); 

,並確保您要創建目錄,其權限應該是 「777」。