Как мне получить CodeIgniter для создания новых папок? - PullRequest
4 голосов
/ 05 сентября 2010

У меня есть пользовательская система, в которой при регистрации учетной записи она автоматически создает новую папку для вас.

Я разместил что-то вроде mkdir ('./ upload /'. $ This-> session-> userdata ('id'), 0, true) в моем Зарегистрировать контроллер, но безрезультатно.

Кто-нибудь знает, как заставить его работать?

Ответы [ 3 ]

4 голосов
/ 13 ноября 2011

Вы пытались установить разрешение при создании папки, например:

mkdir('./upload/' . $this->session->userdata('id'), 0777);
2 голосов
/ 05 сентября 2010

Вы установили правильные разрешения? Codeigniter или любой другой скрипт PHP не сможет создавать файлы или каталоги, если они не разрешены из-за неправильных значений CHMOD. Значение 755 или 775 должно подходить в большинстве случаев. Вы можете изменить эти значения либо с помощью командной строки, либо с помощью приложения FTP (большинство приложений могут сделать это). Также убедитесь, что в качестве владельца или группы указан тот же пользователь, на котором работает ваш веб-сервер (в большинстве случаев это 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.

0 голосов
/ 26 июля 2012

У меня дикая идея, но может быть идеальным решением вашей проблемы. Он также правильно установил разрешение с самого начала. Моя идея состоит в том, чтобы использовать класс FTP CodeIngniter, а затем создать каталог с 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/')

Как я сказал, очень дикая идея!

...