Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

php + Header('Content-Type: image/jpeg') = нету картинки

45K
09 августа 2009 года
itwork
14 / / 22.07.2009
Есть код, стоит последняя библиотека Imagick, картинка test.jpg целая,
а выводит вместо рисунка путь к скрипту, т.е. http://localhost/php.php, и в заголовке страницы написано php.php (изображение «JPEG»).

подскажите в чем может быть дело?

 
Код:
<?php
$im = new Imagick( 'test.jpg' );
header( 'Content-Type: image/jpeg' );

echo $im;
?>
366
09 августа 2009 года
int
668 / / 30.03.2005
Может стоило сделать всё-таки echo file_get_contents('test.jpg');? А то new Imagick, мне кажется, создаёт вообще указатель, и его вывод через echo не выводит картинку.
45K
09 августа 2009 года
itwork
14 / / 22.07.2009
Цитата: int
Может стоило сделать всё-таки echo file_get_contents('test.jpg');? А то new Imagick, мне кажется, создаёт вообще указатель, и его вывод через echo не выводит картинку.



тот же эфект, а должны быть для этого какието спец настройки в apache2.2, может быть проблема в настройках веб сервера?

444
09 августа 2009 года
patison
323 / / 15.03.2007
Да вроде никаких спец настроек быть не должно.
А вы вообще читаете содержимое файла? Пробовали выводить $im не устанавливая хидэр image ?
45K
10 августа 2009 года
itwork
14 / / 22.07.2009
Цитата: patison
Да вроде никаких спец настроек быть не должно.
А вы вообще читаете содержимое файла? Пробовали выводить $im не устанавливая хидэр image ?



да, без хедера показывает содержимое, и так с любими картинками png (image/png), bmp(image/bmp), jpg(image/jpeg).

444
10 августа 2009 года
patison
323 / / 15.03.2007
Странно.
Я в своё время делал тупо так:
 
Код:
header('image/jpeg'); // или png,gif - в зависимости...

$fs = filesize($dst); // $dst - путь до картинки
$h = fopen($dst, "rb");
$img = fread($h, $fs);
fclose($h);
echo $img;

и всё прелестно работало.
312
10 августа 2009 года
dead_star
392 / / 26.11.2006
во-первых, в таких случаях лучше использовать функцию readfile
во-вторых функцию header нужно вызывать до вывода изображения
то есть код будет выглядеть так
 
Код:
<?php
header("Content-Type: image/jpeg");
readfile("test.jpg");
?>
444
10 августа 2009 года
patison
323 / / 15.03.2007
2dead_star: во всех примерах приведённых выше установка хидэра производится ДО вывода содержимого файла.
353
10 августа 2009 года
Nixus
840 / / 04.01.2007
Другие php скрипты работают?
Путь к картинке-то верен?
Имя файла соответствует (верхний и нижний регистр символов не перепутан)?
45K
10 августа 2009 года
itwork
14 / / 22.07.2009
Цитата: Nixus
Другие php скрипты работают?
Путь к картинке-то верен?
Имя файла соответствует (верхний и нижний регистр символов не перепутан)?



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

2.1K
10 августа 2009 года
wAngel
129 / / 23.11.2004
заголовок ответа сервера смотрели?
45K
10 августа 2009 года
itwork
14 / / 22.07.2009
крч, решил проверить все на другой машине (windows 2003), перенес на нее все (сервер,скрипты, картинки,...) и все заработало, тогда стало понятно что дело не в скипте, не в картинке, а наверно в взаимодействии windows vista и apache2.2.


Цитата: wAngel
заголовок ответа сервера смотрели?



а что это и где можно такое посмотреть?

12
11 августа 2009 года
alekciy
3.0K / / 13.12.2005
Цитата: itwork

а что это и где можно такое посмотреть?


Можно любым снифером, хотя удобнее FireBug-ом.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог