Почему IE сохраняет изображения из Web в формате BMP?

Posted by Dmytro Shteflyuk on under PHP · English (14,275 views)

Сегодня я нашел очень неприятную ошибку в Internet Explorer. Я создал изображение GIF с помощью PHP GD2 и отдал результат клиентскому браузеру. Затем я попытался сохранить изображение на локальном диске, но IE предложил только формат .BMP вместо исходного .GIF! Подобная проблема описана в Базе знаний Microsoft, но эта статья не помогла.

Я начал играться с PHP и заголовками и нашел интересную штуку: ошибка проявляется только если в PHP использовать session_start(). Но мне нужны сессии! Решение было найдено очень простое: нужно было добавить следующие строки перед выводом изображения

1
2
3
header("Cache-Control:");
header("Pragma:");
header("Set-Cookie:");

Эти строки удалят все заголовки, которые отправляет функция session_start(), и IE начинает “понимать” правильный формат изображения.

7 Responses to this entry

Subscribe to comments with RSS

erka
said on Январь 19, 2006 at 11:17 · Permalink

угу, видел такое. но не игрался для устранения ошибки. спасибо за исследование и решение проблемы

said on Май 11, 2006 at 09:43 · Permalink

Спасибо! Сегодня наткнулся и был очень рад, что знаю, где брать ответ. :-)

said on Март 28, 2007 at 23:55 · Permalink

Very useful and interesting aricle. Can I translate and insert this on my site?
Greetings
Aukcje

said on Март 29, 2007 at 11:18 · Permalink

Of course you can. Just don’t forget to insert link to original one.

kls
said on Апрель 25, 2007 at 21:38 · Permalink

спасибо большое за решение… :)

dkrnl
said on Июль 21, 2007 at 21:00 · Permalink

тоже намучался с этим – наткнулся на ваш пост.
решение есть более элегантное:
session_cache_limiter(‘none’)

said on Октябрь 14, 2007 at 18:28 · Permalink

session_cache_limiter(’none’)
если можно обьясните новичку

Comments are closed

Comments for this entry are closed for a while. If you have anything to say – use a contact form. Thank you for your patience.