Изображение не отображается с использованием readfile / file_get_contents - PullRequest
0 голосов
/ 10 ноября 2009
if(preg_match('/^[a-zA-Z0-9]+\.(gif|jpe?g)$/',$row['filename'],$matches) &&
    is_readable($row['filepath'].$row['filename'])){    
  echo header('Content-Type: image/'.$matches[1]);    
  echo header('Content-Length: '.filesize($row['filepath'].$row['filename']));    
  echo file_get_contents($row['filepath'].$row['filename']);
} else {
  echo 'cant serve image: '.$row['filename'];
}

Например, когда я пытаюсь разместить header('Content-Type': image/jpeg), отображается только пустая страница и текущий URL.

Я пытаюсь отобразить изображение, чтобы заменить мои <img> теги.

filepath содержит физический путь к каталогу образа.

Ответы [ 2 ]

1 голос
/ 10 ноября 2009

Не уверен, что это решит всю проблему, но вы не должны использовать echo для возвращаемого значения функции header: чтобы отправить заголовок, просто используйте функцию header и ничего не повторяйте:

header('Content-Type: image/'.$matches[1]);

Недопустимое изображение (т. Е. Firefox отображает свой URL вместо содержимого) часто вызывается неверным выводом до / после даты изображения - убедитесь, что в браузер не отправлено ничего кроме самого изображения.

0 голосов
/ 10 ноября 2009

Вам не нужно echo header, просто header.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...