| 
 
| PHP使用HTTP headers强制文件下载,在IE6 IE7 IE8中出现以下错误导致无法正常下载文件 Internet Explorer 无法下载 xxx (来自xxx)。
 Internet Explorer 无法打开该 Internet 站点。请求的站点不可用,或找不到,请以后再试。
 对应的英文版错误信息: Internet Explorer cannot download FileName from WebServer.
 这样的错误,源头是下载程序,代码有问题,但这不是程序员的问题,而是IE6 IE7 IE8在文件下载时有一个Bug.
 那就是不能包含有Cache-Control: no-cache的HTTP头信息,一旦出现了这个头信息,在IE 6-8 中就无法通过PHP强制下载文件。
 可以用Cache-Control: max-age=-1来代替,在其他语言中也是一样的道理。
 完整的PHP HTTP headers强制下载文件代码如下:
 复制代码<?php
        /* PHP HTTP headers强制文件下载
         * @Author 吴先成 www.51-n.com
        */
        $file='./Mom-01-01.mkv';
        $fp=fopen($file,'r');
        header('Pragma: no-cache');
        header('Cache-Control: max-age=-1');
        header('Expires: -1');
        header('Connection: close');
        header('Content-Type: application/octet-stream');
        header('Content-Length: '.filesize($file));
        header('Content-Disposition: attchment; filename="Mom-01-01.mkv"');
        while(!feof($fp)){
                echo fread($fp,1024);
        }
?>
 | 
 |