HTTP Headers for file downloads from websites
ForĀ a file to be downloaded (e.g., if controlled by a PHP file) from your site available with both: “Save as” and reasonable “Open with” suggestions, the following code snippet has confirmed to work reasonably well in FF and IE6.
The “cache-control” headers are for IE6’s weird bugs associated with its “Open as…” mechanism.
The “content-disposition” header tells the browser that the file is available as a download.
The “content-type” header suggests to the browser how to open the file on the user’s computer. For an unknown file type, use “application/octet-stream”.
Hopefully the following PHP could help save you from some frustrations:
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header("Content-Disposition: attachment; filename=\"{$file_name}\"");
header("Content-type: {$content_type}");
readfile($file_name_with_path);
A basic list of content types is available at W3Schools: http://www.w3schools.com/media/media_mimeref.asp