tags:

views:

1223

answers:

4

So, I have a file that sends the following:

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");

then I echo out the file - it is a PDF file.

Works fine in IE6 & 7 on XP (and FF for that matter) The very same code shows nothing when running on IE8 on either XP or Vista. There are no security warnings, etc so I don't think it has to do with that.

And, if my memory serves me correctly, this worked on IE8 a while ago.

What am I doing wrong here? Am I missing something out of the headers?

Is there a way for me to see what header information normal comes over when viewing a PDF in IE8 so I know what to emulate?

After looking at things it still works in IE8 EXCEPT when SSL is on

+1  A: 

I'm not sure what is needed, but here is what you could do. Put the file temporarily in a public place on your server, make syre you can download that with a direct link in IE8, Use firefox LiveHTTP headers or similar to grab all headers that the server sends. Spit them out in exactly the same way and order in your script. (And don't forget to delete the file).

I was going to say exactly the same thing. Fiddler will also give you the headers with IE.
russau
Thanks, that did the trick. I found out I was sending the wrong set of headers to IE (I was using the set I send to firefox)
Jason
A: 

I'm using HTTPS and i had some problems, but using those headers the download did. Try it.

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Pragma: public"); 
header("X-Download-Options: noopen "); // For IE8
header("X-Content-Type-Options: nosniff"); // For IE8
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=file.pdf");
header("Content-length: 7735");

The problem is you cant direct open. Just save.

Angelo Araujo