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.