2012-04-21 4 views
0

J'ai un script PHP qui télécharge les fichiers sur le client, dans une nouvelle fenêtre. Cela fonctionne très bien dans Firefox, mais dans IE8 la fenêtre s'ouvre et se ferme immédiatement. Notez que cela se produit UNIQUEMENT pour certains fichiers (comme le texte/type simple), mais pour d'autres (par exemple: application/pdf) cela fonctionne bien.IE ferme immédiatement les fenêtres au démarrage du téléchargement

Mon script PHP ajoute les en-têtes http présentés ci-dessous (plus quelques-uns ajoutés par mon serveur proxy sont affichés). Je ne peux pas comprendre ce qui ne va pas. Après avoir joué avec les entêtes en php, je trouve que la suppression de Content-Type et de Content-Disposition semble avoir un impact, mais je ne fais que déconner et je n'arrive pas vraiment à comprendre ce qui ne va pas.

J'ai saisi l'en-tête de Firefox comme indiqué ci-dessous. Quelqu'un peut-il voir quelque chose qui ferait fermer IE immédiatement? J'ai essayé de définir le type mime à l'application/texte, mais pas de différence.

HTTP/1.0 200 OK 
Date: Sat, 21 Apr 2012 21:02:13 GMT 
Server: Apache 
Pragma: public 
Expires: 0 
Cache-Control: public 
Content-Description: File Transfer 
Content-Disposition: attachment; filename="Sample_Text_File.txt" 
Content-Transfer-Encoding: binary 
Vary: Accept-Encoding 
Content-Encoding: gzip 
Content-Length: 47 
Content-Type: text/plain 
X-Cache: MISS from firewall.mydomain.ca 
X-Cache-Lookup: MISS from firewall.mydomain.ca:3128 
Via: 1.0 firewall.mydomain.ca (squid/3.0.STABLE7) 
Proxy-Connection: close 

Répondre

0

Il semble que ce soit la technologie anti-popup d'IE. Même si j'ai marqué le site comme sage dans les paramètres de IE, il bloque toujours ..

La solution était de démarrer le téléchargement dans les mêmes fenêtres (pas _blank) et l'IE est heureux. Tous les autres navigateurs que vous pouvez ouvrir dans une nouvelle fenêtre.

0

Je commencerais en supprimant tous les en-têtes de réponse non nécessaires, en particulier les non-sensical tels que Content-Transfer-Encoding et Description du contenu.

Une raison potentielle pourrait être une information de mise en cache cassée, ou l'incapacité d'IE à gérer correctement de nombreux types de l'en-tête de réponse Vary.

Questions connexes