Problèmes avec header() lors de l'affichage d'un fichier PDF dans IE8
Donc, j'ai un fichier qui envoie les suivantes:
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: private");
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=file.pdf");
header("Content-length: 7735");
puis-je reprendre le fichier est un fichier PDF.
Fonctionne très bien dans IE6 & 7 sur XP (et FF)
Le même code ne montre rien, lors de l'exécution sur IE8 soit sur XP ou Vista.
Il n'y a pas des avertissements de sécurité, etc ... donc je ne pense pas que cela a à voir avec cela.
Et, si ma mémoire est bonne, cela a fonctionné sur IE8 il y a un moment.
Ce que je fais mal? Ai-je raté quelque chose hors de l'en-tête?
Est-il un moyen pour moi de voir ce que les informations d'en-tête normal vient lors de l'affichage d'un PDF dans IE8 donc je sais ce qu'il faut imiter?
Après en regardant les choses, il fonctionne encore dans IE8, SAUF lorsque SSL est sur
Content-Length
en-tête, laissez le serveur web faire.
OriginalL'auteur Jason | 2009-08-07
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de ce qui est nécessaire, mais voici ce que vous pourriez faire.
Mettre le fichier temporairement dans un lieu public sur votre serveur, assurez-syre, vous pouvez télécharger qu'avec un lien direct dans IE8, Utilisez firefox LiveHTTP des en-têtes ou similaire pour saisir tous les en-têtes que le serveur envoie. Leur cracher exactement de la même manière et l'ordre dans votre script. (Et n'oubliez pas de supprimer le fichier).
Merci, qui a fait le tour. J'ai découvert que j'était en train d'envoyer le mauvais jeu d'en-têtes pour IE (j'ai été en utilisant l'ensemble je l'ai envoyer à firefox)
OriginalL'auteur user152247
Sous HTTPS et IE8, ces en-têtes de résoudre le problème de téléchargement:
Autres X-quelque chose les en-têtes ne faisait aucune différence.
Oui, cela a fonctionné! Semble fonctionner dans firefox aussi.
c'est l'un de ceux les moments où l'on grâce stackoverflow d'exister, et @mikikg dans ce cas précis. J'ai regardé pour cet en-tête fixer pendant des semaines.
Meilleure réponse en effet. Pour fournir le PDF que j'ai utilisé
header('Cache-Control: max-age=2592000, public, post-check=0, pre-check=0');
sansmust-revalidate
et elle fonctionne aussi bien.J'ai eu ce problème avec HTTP et de ce correctif a fonctionné pour moi aussi. Merci!
OriginalL'auteur mikikg
Il a probablement à faire avec le protocole SSL. J'ai lu cet article (en allemand, avec des exemples de code), où l'auteur définir l'en-tête suivant:
OriginalL'auteur chiborg
Quelque chose que je veux ajouter, comme je l'ai été confronté à ce problème, aussi, d'une manière légèrement différente à l'aide de Joomla.
PDF Normal de Sortie de contenu a bien fonctionné, dans tous les navigateurs.
Mais la génération d'un fichier pdf à partir de l'intérieur de mon propre composant (à l'aide de JDocument, tho) généré le bevahiour mentionnés ci-dessus.
Ma solution: Explicitement activer la mise en cache pour mon composant à l'aide de l'instruction suivante dans view.html.php:
Peut-être qui aide quelqu'un.
OriginalL'auteur Fabian
Je suis en utilisant le protocole HTTPS et j'ai eu quelques problèmes, mais l'utilisation de ces en-têtes le téléchargement ne s'.
Essayez-la.
Le problème est, vous ne pouvez pas diriger. Il suffit d'enregistrer.
OriginalL'auteur
Peut-être liés: Ne peut pas afficher des PDF à partir de HTTPS dans IE 8 (sur Vista 64-bit)
OriginalL'auteur David Gelbart