Проверка файла на существование

Здравствуйте!
Есть много папок и в некоторых может лежать картинка. Папки называю именем id документа.
Хочу проверить на существование картинки в папке.
Все пути вроде верные (вроде!).

Есть сниппет:
[[!checkSchema?
    	&dir=`assets/media/[[+id]]/schema/` // к примеру id = 90, то поиск должен быть в assets/media/90/schema/
    	&tpl=`mailFileInputTpl` // Это соответственно шаблон вывода в случае True
    ]]
Сам сниппет:
$dir;
$tpl;
$path = $_SERVER['DOCUMENT_ROOT']; // Проверяю может не там поиск, но адрес идет до САЙТ.РУ/public_html , т.е. вроде верно

$filename = '/' . $dir . 'schema.png'; // соответственно файл, который ищу в папке
if (file_exists($filename)) {
  return $modx->getChunk($tpl, $filename);
} else {
  return 'НЕТ СХЕМЫ! ---/ ' . $filename . ' /---/ ' . $dir . ' /---' . $path;
}
Вот что возвращается:
1. $filename — "/assets/media/90/schema/schema.png";
2. $dir — «assets/media/90/schema/»;
3. $path — "/ПОЛНЫЙ АДРЕС/САЙТ.РУ/public_html".
$dir пробывал с "/" вначале и без, но результат отрицательный.

Подозреваю(сарказм) что ошибка всё-таки есть и она несколько глупая. Но к сожалению не хватает чего-то найти ее.
Догадываюсь, что проблема с адресами. Прошу помощи)
Спасибо!

P. S. так же признаю, что этот вопрос не уникальный и подобные вопросы были. Но решения своей задачи я в них не нашел.
Rasul
10 апреля 2021, 18:52
modx.pro
635
0

Комментарии: 1

Тодор
12 апреля 2021, 15:31
0
$dir = $dir ?: 'assets/media/90/schema/';
$tpl = $tpl ?: 'mailFileInputTpl';

$filename = "schema.png"; // название файла
$file = MODX_BASE_PATH . $dir . "$filename";
if (file_exists($file)) {
  return $modx->getChunk($tpl, $filename);
} else {
  return 'НЕТ СХЕМЫ! ---/ ' . $file;
}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1