PHP mkdir возвращает 1, но каталог не существует - PullRequest
0 голосов
/ 19 мая 2019

Я создаю каталог в php с помощью mkdir, он возвращает true, но когда я захожу на свой сервер, я не могу найти каталог по указанному пути.

Я проверил в разных местах на сервере.

if (!file_exists('/tmp/tmpfileeee')) {

mkdir('/tmp/tmpfileeee',0755);

echo 'created';

}

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

Просто попробуйте так:

if (!file_exists('tmp/tmpfileeee') AND !is_dir('tmp/tmpfileeee')) {
    mkdir('tmp/tmpfileeee',0755, true);
    echo 'created';
}

mkdir создает папку не файл .

Если вы хотите создать файл:

if (!file_exists('tmp/tmpfileeee') AND !is_file('tmp/tmpfileeee')) {
    $fp = fopen('tmp/tmpfileeee', 'w');
    echo 'created';
}

или лучший способ:

// 1. Check folder and xreate if not exists
if (!file_exists('tmp') AND !is_dir('tmp')) {
    mkdir('tmp',0755, true);
    echo 'folder created';
}
// 2. Check file and create if not exists
if (!file_exists('tmp/tmpfileeee') AND !is_file('tmp/tmpfileeee')) {
    $fp = fopen('tmp/tmpfileeee', 'w');
    echo 'file created';
}

ОБНОВЛЕНИЕ

На некоторых серверах папки tmp и temp ограничены.

Проверка на open_basedir.

Состояния руководства PHP:

Если указанный здесь каталог недоступен для записи, PHP возвращается к системному временному каталогу по умолчанию.Если open_basedir включен, то для успешной загрузки должна быть разрешена системная директория по умолчанию.

0 голосов
/ 19 мая 2019

Существует ли tmp там, где это выполняется? Является ли tmpfileee файлом или каталогом, который вы пытаетесь создать? Если tmp не существует и не существует tmpfileee, я полагаю, что вы пытаетесь создать 2 каталога без рекурсивного параметра в вызове.

Мой PHP определенно ржавый, так что, может быть, кто-то еще сможет ответить лучше, но это были только мои первые мысли на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...