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

Jan 18
2006 14:46 (Программирование, PHP) · English (8,380 views)

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

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

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

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

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

Подписаться на комментарии по RSS или TrackBack на 'Почему IE сохраняет изображения из Web в формате BMP?'.

1
erka
сказал 19.01.2006 в 11.17

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

2
сказал 11.05.2006 в 9.43

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

3
сказал 28.03.2007 в 23.55

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

4
сказал 29.03.2007 в 11.18

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

5
сказал 25.04.2007 в 21.38

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

6
dkrnl
сказал 21.07.2007 в 21.00

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

7
сказал 14.10.2007 в 18.28

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

Оставить отзыв

Вы можете использовать простые теги форматирования HTML (вроде <a>, <ul> and others). Чтобы вставить пример код, используйте <code lang="php">$a = "hello";</code> (поддерживаемые языки: ruby, php, yaml, html, csharp, javascript). Также Вы можете использовать <code>$a = "hello";</code>, синтаксис не будет подсвечен. Если вы не хотите использовать тег <code>, замените символ < на &lt;.

Отправить

 
Copyright © 2005 - 2008, Dmytro Shteflyuk