兼容ie6浏览器的php下载文件代码分享


Posted in PHP onJuly 14, 2014

PS:这段代码在win系统下跑没有问题,枫哥亲测可用.如果用的是linux或是其他系统,要要诸位自行测试下啦.

$filename = "./".$_REQUEST['name']; //这里是枫哥具体路径,只要$filename是所要下载文件的完整路径就可以.
if (!is_file($filename)) {//检测文件是否存在.
 die('下载的文件好像跟TM谁私奔啦!');
}
$filepath = str_replace('\\', '/', realpath($filename));
$filesize = filesize($filepath);
$filename = substr(strrchr('/'.$filepath, '/'), 1);
$extension = strtolower(substr(strrchr($filepath, '.'), 1));
       // use this unless you want to find the mime type based on extension,文件后缀格式,不解释.
$mime = array('application/octet-stream');
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.sprintf('%d', $filesize));
header('Expires: 0');
// check for IE only headers,坑爹的IE检测,你懂的.
if (isset($_SERVER['HTTP_USER_AGENT']) &&((strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false)))
{
 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
 header('Pragma: public');
}
else
{
 header('Pragma: no-cache');
}
$handle = fopen($filepath, 'rb');
fpassthru($handle);
fclose($handle);

这个代码是枫哥从国外的一个站点上找到的,亲测可用.度娘出来的结果,你懂的.因此在博客上共享出来,希望对大家有用.国外的站,地址忘了,没有办法放出,理解下.最后,严肃的声明下:这个代码不是我写的,是转载的.

PHP 相关文章推荐
特转载一高手总结PHP学习资源和链接.
Dec 05 PHP
PHP 编程请选择正确的文本编辑软件
Dec 21 PHP
PHP 加密与解密的斗争
Apr 17 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
PHP文件读取功能的应用实例
May 08 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
CodeIgniter整合Smarty的方法详解
Aug 25 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 #PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 #PHP
PHP缓存机制Output Control详解
Jul 14 #PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 #PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 #PHP
PHP实现获取图片颜色值的方法
Jul 11 #PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 #PHP
You might like
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
php实现的SESSION类
2014/12/02 PHP
php命令行模式代码实例详解
2021/02/26 PHP
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
以一段代码为实例快速入门Python2.7
2015/03/31 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
Python实现AI换脸功能
2020/04/10 Python
python实现三种随机请求头方式
2021/01/05 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
高中学生干部学习的自我评价
2014/02/21 职场文书
公益广告宣传方案
2014/02/28 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
护士医德医风自我评价
2014/09/15 职场文书
异地年检委托书范本
2014/09/24 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
单位单身证明样本
2014/10/11 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
演讲开头怎么书写?
2019/08/06 职场文书