2009-11-10 1 views
0
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.Изображение не отображается с использованием файла readfile/file_get_contents

Im пытается отобразить изображение для замены тегов <img>.

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

ответ

0

Вам не нужно echo header, всего header.

1

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

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

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

Смежные вопросы