Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a link that triggers file download?

When a user clicks a "Download PDF" link, I would like for the download prompt to appear and for the user to be able to download the file.

Currently, the user is just transferred to the address of the PDF file.

For example:

<a..[what goes here??]..>Download PDF</a>

It seems that there's a combination of JavaScript & PHP needed to do this.

Can anyone give an example?

like image 845
edt Avatar asked Oct 02 '09 11:10

edt


2 Answers

Redirect to a PHP page with this code on it:

<?php
header('Content-disposition: attachment; filename=movie.mpg');
header('Content-type: video/mpeg');
readfile('movie.mpg');
?>

your <a href code will need to point to a specific page, and readfile will call your resource

Further reading

Just as a side note, I do agree that you should not override a browsers settings, but sometimes when the boss asks, you just have to do.

like image 183
andrewWinn Avatar answered Sep 18 '22 16:09

andrewWinn


If you're on Apache, you can drop this into your .htaccess:

<Files *.pdf>
  Header set Content-Disposition attachment
</Files>

This will send all PDF documents as downloads. mod_headers has to be enabled though.

like image 42
middus Avatar answered Sep 21 '22 16:09

middus