兼容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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
透析PHP的配置文件php.ini
Oct 09 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
PHP sprintf() 函数的应用(定义和用法)
Jun 29 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 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和MySQL保存和输出图片
2006/10/09 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
php后退一页表单内容保存实现方法
2012/06/17 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
php实现微信企业转账功能
2018/10/02 PHP
jquery移动listbox的值原理及代码
2013/05/03 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
Python脚本实现集群检测和管理功能
2015/03/06 Python
python实现的简单文本类游戏实例
2015/04/28 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python 错误和异常代码详解
2018/01/29 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
python写入文件自动换行问题的方法
2019/07/05 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
酒店led欢迎词
2014/01/09 职场文书
家长给孩子的表扬信
2014/01/17 职场文书
年终奖发放方案
2014/06/02 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
python 网络编程要点总结
2021/06/18 Python
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL