It is really annoying when you are trying to make a file available for download and the user's browser keeps opening the file rather than allowing the user to save it. This php script forces the Save As dialog to show up reliably when downloading a file.
To use the script, download it, set the $path variable to the relative path to your downloads folder, and upload the script to your website. The default name for the downloads folder is "downloads". Place your files in the downloads folder (specified in $path above) and link to the files like this:
- http://www.example.com/download.php?file=filename.txt
For example, if your downloads folder is called "downloads" and it is at the root of your website, then there no changes necessary. Simply upload the script to your website.
Download the script: download.php
Cleaning up the URL
On apache servers mod_rewrite can hide what's happening under the covers and clean up the download URLs. So, for example instead of this
- http://www.example.com/download.php?file=filename.txt
The user sees this
- http://www.example.com/downloads/filename.txt
Although it appears that the file is being downloaded directly from the downloads directory, mod_rewrite can recognize and rewrite the URL to use the php script for downloading the file.
Assuming mod_rewrite is available on your server, simply place the code above into the .htaccess file to support downlod URLs with no reference to the php script. If the downloads directory is not in the root of your website, specify the path in the RewriteRule. For example, if the downloads directory is located at /foo/bar/downloads, the RewriteRule should look like: