2009-09-10 2 views
1

Я динамически генерирую текстовый файл в PHP, поэтому он имеет расширение .php, но текстовое/простое MIME-тип. Все браузеры отображают файл как хорошо отформатированный текст, за исключением IE8.Остановить IE8 от открытия или скачивания текстового/простого MIME-типа

Googling сообщает мне, что они добавили безопасность, если тип содержимого заголовка HTTP не соответствует ожидаемому типу содержимого (я думаю, на основе расширения и некоторого нюхания), то он заставляет файл загружаться. В моем случае я должен открыть его, а также дать ему разрешение открыть файл, который я только что сказал ему открытым! Это, вероятно, раздражение Win7. Конечно, обслуживание статического текстового файла отлично работает.

Могу ли я остановить IE8 от загрузки файла и заставить его нормально его просматривать? Код должен работать в нескольких средах с общим хостингом, поэтому я думаю, что я застрял с расширением .php.

ответ

5

Добавьте это в заголовок HTTP:

X-Content-Type-Options: nosniff 

Это функция IE8, чтобы отказаться от его MIME-фырканье.

Source

+0

Выглядит многообещающе из статьи, но это не имеет значения. Боюсь! –

+0

Есть ли причина, по которой вы должны служить текстовой/простой? Не могли бы вы просто передать HTML и форматировать текст с помощью '

'? –
                        
                            
    jimyi
                                
                            
                        
                    

+1

Я возвращаю его, через 6 часов работает волшебство заголовка. Должно быть, это было обычное чрезмерное энтузиазм! –

1

В качестве альтернативы, вы можете «обмануть» IE8, думая, что это действительно обслуживает до текстового файла. Эти 2 строки делают это для меня и не включают использование нестандартизированных «X-» заголовков:

Header("Content-Type: text/plain"); 
Header("Content-Disposition: inline; filename=\"whatever.txt\"");