兼容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 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
php 文件上传系统手记
Oct 26 PHP
php 数组的指针操作实现代码
Feb 08 PHP
初识PHP
Sep 28 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
php中$_POST与php://input的区别实例分析
Jan 07 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
php远程下载类分享
Apr 13 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
Javascript学习笔记5 类和对象
2010/01/11 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
python进阶教程之异常处理
2014/08/30 Python
python打开网页和暂停实例
2014/09/30 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
python实现微信自动回复功能
2018/04/11 Python
Python列表解析配合if else的方法
2018/06/23 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
财产公证书样本
2014/04/04 职场文书
出国签证在职证明
2014/09/20 职场文书
企业法人代表证明书
2014/09/27 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
实习单位鉴定意见
2015/06/04 职场文书
首次购房证明
2015/06/19 职场文书
2016年师德学习心得体会
2016/01/12 职场文书