How to make PDF file downloadable in HTML link?

25 down vote accepted

Instead of linking to the .PDF file, instead do something like

<a href="pdf_server.php?file=pdffilename">Download my eBook</a>

which outputs a custom header, opens the PDF (binary safe) and prints the data to the user’s browser, then they can choose to save the PDF despite their browser settings. The pdf_server.php should look like this:

header(“Content-Type: application/octet-stream”);

$file = $_GET[“file”] .”.pdf”;
header(“Content-Disposition: attachment; filename=” . urlencode($file));
header(“Content-Type: application/force-download”);
header(“Content-Type: application/octet-stream”);
header(“Content-Type: application/download”);
header(“Content-Description: File Transfer”);
header(“Content-Length: ” . filesize($file));
flush(); // this doesn’t really matter.
$fp = fopen($file, “r”);
while (!feof($fp))
{
echo fread($fp, 65536);
flush(); // this is essential for large downloads
}
fclose($fp);

PS: and obviously run some sanity checks on the “file” variable to prevent people from stealing your files such as don’t accept file extensions, add .pdf to the value

Leave a Reply

Your email address will not be published. Required fields are marked *