php imagejpeg mime type

Я использую imagejpeg от php, чтобы сохранить ресурс изображения GD в файл, делая это:

imagejpeg($im, '../images/' . $image_id . '.jpg');

Он работает нормально, но, согласно моему браузеру, он пытается прочитать файл как text / plain:

Ресурс интерпретируется как изображение, но передается с текстом MIME типа text / plain.

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

Я использую Windows (XAMPP), это может быть проблема Windows? РЕДАКТИРОВАТЬ: Нет. Я только что проверил на сервере Linux.

Что касается фактического отображения, это просто HTML. Мой код загрузки должен сохранять файл как обычный jpeg на сервере. Это просто не сохраняет его с правильным типом пантомимы.

Спасибо

13.10.2009 01:43:21
Есть новости об этом?
Renan Franca 12.01.2015 14:00:58
3 ОТВЕТА

Похоже, вы выгружаете содержимое файла в браузер и фактически не сообщаете браузеру, какой это тип файла. Попробуйте добавить заголовок Content-type перед выводом изображения в браузер:

header('Content-type: image/jpeg');
0
13.10.2009 01:44:48
нет нет, я на самом деле отображаю мои изображения по старинке: <img src = "../ images / 2.jpg" />. Мой скрипт загрузки сохраняет статический файл JPEG.
Nathan H 13.10.2009 01:58:51

Вы уверены, что не используете неправильное имя расширения файла? В противном случае, просто поместите нормальное изображение на сервер и убедитесь, что MIME-типы правильно настроены. Также может быть, что ваши данные изображения от манипуляции повреждены.

0
13.10.2009 02:27:08
Мои расширения файлов .jpg. Я только что проверил вручную загрузить изображение, и тип MIME там правильный. Так что это действительно о том, как php сохраняет изображение на сервере.
Nathan H 13.10.2009 02:32:47

AFAIK, сервер Apache - в стандартной конфигурации из коробки - должен отправлять заголовки типа контента исключительно на основе расширения файла. Apache даже не должен смотреть на содержимое или как оно было изначально сгенерировано / сохранено.

На моем стандартном Apache2 файл conf / mime.types содержит строку:

image/jpeg jpeg jpg jpe

что должно сделать это, верно?

Можете ли вы опубликовать тестовый пример, скажем, простой html-страницы с двумя тегами img: один для вашего сгенерированного изображения, а другой для стандартного изображения, которое, кажется, работает нормально?

Одна последняя мысль: это происходит во всех браузерах? Может это проблема браузера, а не сервера?

1
13.10.2009 15:00:53