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!" раздатчик брошюры внутри хранилища внутри форта Нокс - бесполезно.