@HAbRAhabp

Почему не работает readfile()?

Есть такой код:
<?php
    $id = basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
    if($id != 'show') {
        require "../../../db.php";
        $db = new mysqli(db_host, db_user, db_pass, db_name);
        if($array_ban = $db->query("SELECT * FROM `adverts` WHERE `id` = '$id'")->fetch_array()) {
           // var_dump($array_ban);
            $file = $array_ban['src'];
            $mime = $array_ban['mime_type'];
            $path = "/var/banners/{$file}";
            if(file_exists($path)) {
             header("Content-Type: " . $mime);
            readfile($path);
            }
            else {
                die("Файл не существует");
            }
        }
    }

Каталог /var/banners/ разумеется существует, как и файлы в нем. Права на папке стоят 777. Задача: посредством данного php файла вытащить картинку. Но почему то получаю иконку картинки XB4ni.png , тоесть самой картинки нет. Проверял каждую переменную. Пришел к выводу, что по каким то другим причинам не работает readfile(). У меня nginx+php-fpm. Если через alias вывести эту папку, все работает нормально.
  • Вопрос задан
  • 494 просмотра
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Вы уверены, что путь правильный? Откройте консоль браузера и проверьте, что именно возвращается с сервера.
Как-то так i.imgur.com/QBRFsmo.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы