兼容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 相关文章推荐
用Socket发送电子邮件(利用需要验证的SMTP服务器)
Oct 09 PHP
php 常用类整理
Dec 23 PHP
PHP操作xml代码
Jun 17 PHP
php四种基础算法代码实例
Oct 29 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
Jan 26 PHP
php截取指定2个字符之间字符串的方法
Apr 15 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
Yii2中Restful API原理实例分析
Jul 25 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
laravel通过a标签从视图向控制器实现传值
Oct 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
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
总结JavaScript中布尔操作符||与&&的使用技巧
2015/11/17 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
vue权限管理系统的实现代码
2019/01/17 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
详解python3实现的web端json通信协议
2016/12/29 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
Python对excel文档的操作方法详解
2018/12/10 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
python实现猜数字游戏
2020/03/25 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
Java语言的优势
2015/01/10 面试题
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
生物化工工艺专业应届生求职信
2013/10/08 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
商铺门面租房协议书
2014/10/21 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技