I have a PHP script being served over https:// that is trying to push a PDF file to the user. The problem that in Internet Explorer 6 (which unfortunately I still have to support) is not obeying the filename being set in the header. FireFox and IE7 are both working properly.
The file name keeps coming out as a random name with the correct extension. Example: “CAOTC5K3.pdf”, “CAXSIPXV.pdf” or “CA1OCVTX.pdf”
If I un-comment out the “Content-type” line, IE6 gives me an error, and tries to download the file inline with the name of the querystring that was passed to PHP.
<?php
//header( "Content-type: application/pdf" );
$filename = 'quickquote.pdf';
header( "Content-Disposition: attachment;filename=$filename" );
echo file_get_contents( "/example.pdf" );
die;
?>
I have tried wrapping the file name in quotes, adding a \n at the end of the header lines, adding header('Content-type: application/octet-stream');, adding header("Content-Type: application/force-download");
I think you might need a space after
attachment;:If that doesn’t work, check out some of the points in this article, including:
EDIT: Here’s the code I use, directly copied from my application’s source. Let me know if this works any better…
Usage for your case would be:
Also you’ll need to change
DFStdLib::HOUR_IN_SECONDSto3600and write your owndetermineMimeTypefunction, or delete that line and make the$mimeargument required…