兼容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发送电子邮件
Oct 09 PHP
消息持续发送的完整例子
Oct 09 PHP
PHP+APACHE实现用户论证的方法
Oct 09 PHP
mysql时区问题
Mar 26 PHP
php 过滤危险html代码
Jun 29 PHP
一个php短网址的生成代码(仿微博短网址)
May 07 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
php微信公众平台开发类实例
Apr 01 PHP
PHP CURL 多线程操作代码实例
May 13 PHP
php实现可运算的验证码
Nov 10 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
thinkphp框架类库扩展操作示例
Nov 26 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
修改file按钮的默认样式实现代码
2013/04/23 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
js用类封装pop弹窗组件
2017/10/08 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
优雅地使用loading(推荐)
2019/04/20 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
python解析xml模块封装代码
2014/02/07 Python
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
Python docx库用法示例分析
2019/02/16 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
办公室内勤工作职责
2013/12/11 职场文书
法定代表人资格证明书
2014/09/11 职场文书
关于调整工作时间的通知
2015/04/24 职场文书