The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"IE кеширует файлы для скачивания, как победить?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (web-разработка, CGI)
Изначальное сообщение [ Отслеживать ]

"IE кеширует файлы для скачивания, как победить?"  +/
Сообщение от 027 email(ok) on 18-Июн-12, 23:38 
Задача (выполнена): сделать веб-сервис для конвертации одних plain/text файлов в другие.

Первичная проблема: сгенерированный файл с нестандартным расширением выдавался на данном хостинге с http хедером plain/text (решено посредством изучения причудливых настроек хостера. .httaccess  не работает, но можно нарулить mime-типы в админке).

Оставшиеся проблемы:
1. IE, вместо того, чтобы предлагать файл для скачивания, выводит тест на экран. (Приличные браузеры выводят окно для сохранения файла.)
2. IE кеширует выходной файл, и приходится сначала открыть его (текст на экране), обновить, увидеть, что обновился, сохранить как. (Приличные браузеры без проблем скачивают обновленную версию файла.)

Что сумел сделать:
1. При нажатии на ссылку сервер таки выдает заголовок
Content-Type: application/octet-stream
(в нормальных браузерах предлагается скачать, IE тупо открывает текстовое содержимое)
(заголовки смотрел в мазиле через HTTPFox)
2. В php обработчике дописал выдачу хедеров
Pragma:    No-cache
Cache-Control:    no-cache
Это уже от отчаяния. Эти хедеры относятся к самому скрипту обработчика. На выдаваемой им странице есть обыкновенная ссылка на файл. Который упорно кешируется IE при дефолтных настройках.

Чахоточная идея от чайника - попытаться сформировать ссылку на скачивание файла не средствами html, а средствами php, серией функций header(), чтобы заставить это угребище, IE, хотя бы время создания файла проверять, прежде чем тупо выдавать устаревшую копию из кеша. Не знаю пока, как это сделать, и можно ли.

Может быть, есть более кошерное решение?

<offtopic>
В процессе гуглежа наткнулся на такой вот совет от мелкософта:
http://support.microsoft.com/kb/222064
Предлагается создать еще одну секцию <head> в КОНЦЕ страницы с мета-тегом, призывающим к браузер к Pragma: no-cache.
[Это полный п...ц (вымарано)] Конгениально!
</offtopic>

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "IE кеширует файлы для скачивания, как победить?"  +/
Сообщение от ACCA (ok) on 19-Июн-12, 05:50 
[...]
> угребище, IE, хотя бы время создания файла проверять, прежде чем тупо
> выдавать устаревшую копию из кеша. Не знаю пока, как это сделать,
> и можно ли.
> Может быть, есть более кошерное решение?

Я своим юзерам сказал - "на этом сайте поддерживается любой браузер от Google или Mozilla. Чтобы не говорили, что у вас не было выбора" Месяц побурчали, сейчас спрашивают, как вынести IE совсем.

Как альтернатива есть онанизм вприсядку - http://www.jtricks.com/bits/content_disposition.html

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "IE кеширует файлы для скачивания, как победить?"  +/
Сообщение от 027 (ok) on 20-Июн-12, 20:45 
> Я своим юзерам сказал - "на этом сайте поддерживается любой браузер от
> Google или Mozilla. Чтобы не говорили, что у вас не было
> выбора" Месяц побурчали, сейчас спрашивают, как вынести IE совсем.

К сожалению, это не мои юзвери. Мои-то подопечные давно научены не трогать каку. Вданном случае надо сделать для неопределенного круга пользователей и не выслушивать потом жалобы.
> Как альтернатива есть онанизм вприсядку - http://www.jtricks.com/bits/content_disposition.html

Спасибо за ссылку, идея понятна, попробую.


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "IE кеширует файлы для скачивания, как победить?"  +/
Сообщение от 027 (ok) on 20-Июн-12, 20:52 
Тьфу мне на лысину! Можно тупо дописывать к имени вновь сгенерированного файла timestamp, а предыдущую версию мочить.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру