Отображение изображения с помощью php - PullRequest
0 голосов
/ 03 мая 2010

У меня есть скрипт, который отображает такие изображения:

header("Content-Type: image/{$ext}");

ReadFile ($ image-> путь);

Это работало отлично в течение нескольких недель, а теперь вдруг перестало работать. Заголовок ответа выглядит нормально (Content-Type: image/jpg), у меня нет конечного php-тега, и я не сделал никаких изменений в своем коде, настройке сервера или php, которые могли бы вызвать сбои. Кто-нибудь знает, что может пойти не так?

Спасибо!

======================

UPDATE

Изображение не отображается, хотя вы можете загрузить его (файл-> сохранить как) и сохранить его на компьютер. Открытие его локально, хотя и не будет работать, что заставляет меня думать, что изображение каким-то образом повреждено. Кто-нибудь испытывал нечто подобное? Я думаю, что некоторые ошибки / предупреждения php вставляются в поток и портят изображение.

Ответы [ 3 ]

0 голосов
/ 03 мая 2010

Одним из источников возможных проблем является то, что тип MIME для изображений JPEG имеет значение image/jpeg, а не image/jpg. Это тот случай, когда тип не согласуется с довольно распространенной трехсимвольной версией расширения файла.

0 голосов
/ 03 мая 2010

Некоторые мысли:

  • Файл слишком большой
  • Путь к файлу, вызывающий проблемы
0 голосов
/ 03 мая 2010

Правильный тип контента для изображений JPG - «Тип контента: изображение / JPEG».

Обратите внимание, что тип T в нижнем регистре.

UPDATE

Я не знаю, будет ли это полезно, но попробуйте что-то вроде этого:

$info=pathinfo($image->path);
$ext=strtolower($info["extension"]);
if($ext=="jpg") $ext="jpeg";
header("Content-type: image/$ext");
imagejpeg(imagecreatefromjpeg($image->path));
...