PHP script to download file not working in IE

Managed to get this working by using the first example from php.net

http://us3.php.net/manual/en/function.readfile.php


header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;


To solve the error : "Internet Explorer cannot download download.php from www.example.com", Add these headers to your script:

header("Pragma: ");

header("Cache-Control: ");

The code will remove the Cache-Control from headers which makes the download problem.

The above code should be added at the top of the file.

It works fine for us.


Set the Content-Disposition header to "attachment", like so (in PHP): where attachment was scripted.

header('Content-Disposition: attachment');

And add the following in .htaccess and add what ever extension that you want to download not only txt

<FilesMatch "\.(txt|pdf|csv|xls|xlsx|xlam|xlsb|xlsm|msg|doc|docx|mpg|jpg|png)">
   Header set Content-Disposition attachment
</FilesMatch>

Replace this:
header("Content-type: application/octet-stream");
with this:
header("Content-Type: application/force-download");

According to this post, IE doesn't normally listen to your headers, and instead looks for itself what you are sending.