找回密码
 注册

[PHP] Internet Explorer 无法打开该 Internet 站点。请求的站点不可用

php 发表于 2014/7/7 01:30 | 显示全部楼层 |阅读模式
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强制下载文件代码如下:
  1. <?php
  2.         /* PHP HTTP headers强制文件下载
  3.          * @Author 吴先成 www.51-n.com
  4.         */
  5.         $file='./Mom-01-01.mkv';
  6.         $fp=fopen($file,'r');
  7.         header('Pragma: no-cache');
  8.         header('Cache-Control: max-age=-1');
  9.         header('Expires: -1');
  10.         header('Connection: close');
  11.         header('Content-Type: application/octet-stream');
  12.         header('Content-Length: '.filesize($file));
  13.         header('Content-Disposition: attchment; filename="Mom-01-01.mkv"');
  14.         while(!feof($fp)){
  15.                 echo fread($fp,1024);
  16.         }
  17. ?>
复制代码

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表