兼容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 相关文章推荐
Mysql的常用命令
Oct 09 PHP
PHP 文件系统详解
Sep 13 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 PHP
php计算指定目录下文件占用空间的方法
Mar 13 PHP
PHP生成及获取JSON文件的方法
Aug 23 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
Laravel模型间关系设置分表的方法示例
Apr 21 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
php如何比较两个浮点数是否相等详解
Feb 12 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
基于PHP文件操作的详解
2013/06/05 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
Python实现删除文件但保留指定文件
2015/06/21 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
python列表返回重复数据的下标
2020/02/10 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
如何写出好的Java代码
2014/04/25 面试题
思想品德自我鉴定
2013/10/12 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers