PHP не может найти файл, даже если он существует

Каждый.

Я использую скрипт изменения размера изображения, который изменяет размеры изображений JPG. Он работал нормально на моем удаленном сервере, но, к сожалению, он не работает на сервере клиента.:-|

Каталоги доступны для записи (разрешение установлено на 777). Все, что я получаю, это:

Error: image does not exist: /home/content/u/s/e/username/correct/path/to/existing/file.jpg

Вот фрагмент кода, который может быть полезен при отладке:

// Images must be local files, so for convenience we strip the domain if it's there
$image          = preg_replace('/^(s?f|ht)tps?:\/\/[^\/]+/i', '', (string) $_GET['image']);
// ...
// Strip the possible trailing slash off the document root
$docRoot    = preg_replace('/\/$/', '', DOCUMENT_ROOT);
//...
if (!file_exists($docRoot . $image))
{
    header('HTTP/1.1 404 Not Found');
    echo 'Error: image does not exist: ' . $docRoot . $image;
    exit();
}

Обратите внимание, что как разработчик я получил разрешение на доступ к подкаталогу корневого каталога.

Надеюсь, я прояснил проблему. Я в растерянности относительно того, что происходит за сценой. Помощь очень ценится

1 ответ

Решение

PHP должен иметь доступ ко всем каталогам, ведущим к файлу, а не только к самому файлу. Если у него нет разрешений на ВСЕ каталоги, то равнозначно поставить "Free! Take one!" раздатчик брошюры внутри хранилища внутри форта Нокс - бесполезно.

Другие вопросы по тегам