2013-07-23 1 views
0

Итак, у меня есть localhost, и я строю свое веб-приложение на codeigniter. У меня это как часть функции, чтобы сделать каталог:Неужели почему функция mkdir не работает?

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

Он должен создать каталог:

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

Я не знаю, почему это не работает.

+0

Файловые системные вызовы, такие как mkdir(), должны использовать ссылки на файловую систему, а не ссылки на ссылки –

ответ

2

base_url будет URL-адресом HTTP. Вы не можете создавать каталоги по URL-адресам HTTP, их необходимо создать в вашей файловой системе. (Ваш веб-сервер может затем сопоставить каталоги на с 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".

 Смежные вопросы

  • Нет связанных вопросов^_^