Creating download link for a pdf

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Mysql 5.0.15
php 5.1.6
apache 2.2.3

I am trying to create a download link for various pdfs which I have stored in a  
mysql DB.

I am having trouble with the header fields when clicking the link.

Here is the code that sends the pdf called using
<a href="download.php?id=4">Blah</a>

Output is delayed from php.ini (output_buffering = 4096)

What http headers should I be sending.

This works most of the time like this, but in IE6 I get few strange results  

1. Clicking on a new page after downloading the pdf - the page is blank unless I  
2. The URL in the address bar does not update even though the page does.
3. If I leave out the Content_Disposition header and set the Content-Type:  
application/pdf. The browser just displays the PDF as text.

   include($_SERVER["DOCUMENT_ROOT"] . "/../php/");
   include($_SERVER["DOCUMENT_ROOT"] . "/../php/prepend.php");

   $db=new Interlex_DB;

     $query=sprintf("SELECT pdf, filename, length(pdf) AS len FROM broadsheets  
WHERE broadsheet_id='%d' AND active=1", $_GET["id"]);
         header("Accept-Ranges: bytes");
         header("Content-Transfer-Encoding: Binary");
         header("Content-Type: application/force-download");
         header(sprintf("Content-Length: %d", $db->f("len")));
         header(sprintf("Content-Disposition: inline; filename=\"%s\"",  
         echo $db->f("pdf");



Think you know a language? Post to comp.lang... and find out!

Re: Creating download link for a pdf

I would set output buffering to just on because 4096 just buffers the
first 4096 bytes; not always what you want. Also, if you're displaying
a PDF, many browsers have built in plugins to handle pdfs. If the users
wants to download it, then they can just use the save function in their
browsers to download the pdf.
Adrian wrote:
Quoted text here. Click to load it

Re: Creating download link for a pdf

An noise sounding like Adrian said:
Quoted text here. Click to load it
header("Content-disposition: application/pdf");

Might have incorrect mime type, but you should be setting that header.  


Quoted text here. Click to load it


Trees with square roots don't have very natural logs.
What's the difference between ignorance and apathy? Who knows? Who cares?

Site Timeline