2009-09-10 3 views
1

Je génère dynamiquement un fichier texte en PHP, donc il a une extension .php mais un type MIME texte/plain. Tous les navigateurs affichent le fichier sous forme de texte préformaté, sauf IE8. Googling me dit qu'ils ont ajouté la sécurité où si le type de contenu de l'entête HTTP ne correspond pas au type de contenu attendu (je pense basé sur l'extension et un reniflement) alors il force le téléchargement du fichier. Dans mon cas je dois l'ouvrir, et lui donner aussi la permission d'ouvrir le fichier que je viens de lui dire ouvert! C'est probablement un ennui Win7 cependant. Servir un fichier texte statique fonctionne bien, bien sûr.Arrêter IE8 d'ouvrir ou de télécharger un type MIME texte/plain

Puis-je empêcher IE8 de télécharger le fichier et de l'afficher normalement? Le code doit tourner sur plusieurs environnements d'hébergement partagés, donc je pense que je suis coincé avec l'extension .php.

Répondre

5

Ajouter à votre tête HTTP:

X-Content-Type-Options: nosniff 

Il est une caractéristique IE8 d'opt-out de son MIME-sniffing.

Source

+0

semble prometteur de l'article, mais pas faire une différence, j'ai peur! –

+0

Y a-t-il une raison pour laquelle vous devez servir du texte/plaine? Pourriez-vous juste servir HTML et formater le texte avec '

'? –
                        
                            
    jimyi
                                
                            
                        
                    

+1

Je le reprends, 6 heures plus tard, la magie de l'en-tête fonctionne. Doit avoir été la mise en cache sur-enthousiaste habituelle! –

1

Alternativement, vous pouvez « truc » IE8 en pensant qu'il est en effet au service un fichier texte. Ces 2 lignes font pour moi et ne concernent pas l'utilisation non-standardisés têtes « X- »:

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