PHP: header – pdf document

I just lost six hours of my life trying to use the following method to send a PDF file via PHP to Internet Explorer 6:

('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');

When using SSL, Internet Explorer will prompt with the Open / Save dialog, but then says "The file is currently unavailable or cannot be found.  Please try again later."  After much searching I became aware of the following MSKB Article titled "Internet Explorer file downloads over SSL do not work with the cache control headers" (KBID: 323308)

PHP.INI by default uses a setting: session.cache_limiter = nocache which modifies Content-Cache and Pragma headers to include "nocache" options.  You can eliminate the IE error by changing "nocache" to "public" or "private" in PHP.INI -- This will change the Content-Cache header as well as completely remove the Pragma header.  If you cannot or do not want to modify PHP.INI for a site-wide fix, you can send the following two headers to overwrite defaults:

('Cache-Control: maxage=3600'); //Adjust maxage appropriately
header('Pragma: public');

You will still need to set the content headers as listed above for this to work.  Please note this problem ONLY effects Internet Explorer, while Firefox does not exhibit this flawed behavior.

PHP: header – Manual

Blogged with Flock

Tags: , ,

  • Publié dans: php

1 commentaire

  1. pietro

    Had the same problem with pdf plugin for ruby on rails and the headers
    you suggest worked!
    Thank you!!!!


Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:


Vous commentez à l'aide de votre compte Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :