兼容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 相关文章推荐
完美解决dedecms中的[html][/html]和[code][/code]问题
Mar 20 PHP
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 PHP
php启用zlib压缩文件的配置方法
Jun 12 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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计算排列组合的方法
2013/11/13 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
php框架知识点的整理和补充
2021/03/01 PHP
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
vuex 中插件的编写案例解析
2019/06/10 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
python读取csv文件示例(python操作csv)
2014/03/11 Python
利用python发送和接收邮件
2016/09/27 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
python字典操作实例详解
2017/11/16 Python
python实现最长公共子序列
2018/05/22 Python
python求最大连续子数组的和
2018/07/07 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
python+logging+yaml实现日志分割
2019/07/22 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
安全生产网格化管理实施方案
2014/03/01 职场文书
开门红主持词
2014/04/02 职场文书
会议通知
2015/04/15 职场文书
亲戚关系证明
2015/06/24 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis