Как проверить в php каталог с символическими ссылками и если его не сделать

У меня есть это :

move_uploaded_file($File['tmp_name']['File'], $FilePath);

куда

$FilePath is '/data/www/MIMICm/Common/Upload/PPKInside/CustomImage/6/52'

куда ‘PPKInside’ символическая ссылка указывает на ‘../../MIMI/Common/Data/’ где ‘Данные’ Symling указывает на ‘/ Шоссе / nfsnew / DIDIData / PPKInside / Data’
До сих пор я обнаружил, что ‘/ Шоссе / nfsnew /’ пусто и ‘/ DIDIData / PPKInside / Data’ отсутствуют каталоги …
Каков наилучший способ проверить, существуют ли каталоги, и создать их, если их нет? Потому что на данный момент

is_dir('/data/www/MIMICm/Common/Upload/PPKInside');

возвращает false и мне нужно использовать is_link () но после первой ссылки (‘PPKInside’) я не могу проверить, существуют ли его подкаталоги, и создать их при необходимости …

-1

Решение

Realpath развернет все символические ссылки в указанном пути и сообщит вам, существует ли окончательный абсолютный файл (каталог):

realpath () возвращает FALSE при ошибке, например, если файл не существует

Если он не существует, вы можете создать полный путь к каталогу за один раз, добавив отсутствующие подкаталоги по пути, используя MkDir с $recursive флаг установлен.

$FilePath = '/data/www/MIMICm/Common/Upload/PPKInside/CustomImage/6/52';

if (!realpath($FilePath)) {
mkdir($FilePath, 0777, true);
}

Обратите внимание, что этот конкретный пример создает любые каталоги с разрешениями на чтение / запись / выполнение для все. Возможно, вы захотите изменить 0777, чтобы лучше соответствовать вашей конкретной настройке.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]