Задача (выполнена): сделать веб-сервис для конвертации одних 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>
[...]
> угребище, IE, хотя бы время создания файла проверять, прежде чем тупо
> выдавать устаревшую копию из кеша. Не знаю пока, как это сделать,
> и можно ли.
> Может быть, есть более кошерное решение?Я своим юзерам сказал - "на этом сайте поддерживается любой браузер от Google или Mozilla. Чтобы не говорили, что у вас не было выбора" Месяц побурчали, сейчас спрашивают, как вынести IE совсем.
Как альтернатива есть онанизм вприсядку - http://www.jtricks.com/bits/content_disposition.html
> Я своим юзерам сказал - "на этом сайте поддерживается любой браузер от
> Google или Mozilla. Чтобы не говорили, что у вас не было
> выбора" Месяц побурчали, сейчас спрашивают, как вынести IE совсем.К сожалению, это не мои юзвери. Мои-то подопечные давно научены не трогать каку. Вданном случае надо сделать для неопределенного круга пользователей и не выслушивать потом жалобы.
> Как альтернатива есть онанизм вприсядку - http://www.jtricks.com/bits/content_disposition.htmlСпасибо за ссылку, идея понятна, попробую.
Тьфу мне на лысину! Можно тупо дописывать к имени вновь сгенерированного файла timestamp, а предыдущую версию мочить.