兼容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 相关文章推荐
PHP 5.0对象模型深度探索之属性和方法
Mar 27 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
php模板原理讲解
Nov 13 PHP
php代码审计比较有意思的例子
May 07 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
Thinkphp多文件上传实现方法
Oct 31 PHP
PHP 正则表达式小结
Feb 12 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
Dec 07 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
YII框架常用技巧总结
Apr 27 PHP
设定php简写功能的方法
Nov 28 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 实现多服务器共享 SESSION 数据
2009/08/15 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
php数组去重复数据示例
2014/02/25 PHP
php获取文件大小的方法
2014/02/26 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
angular4模块中给标签添加背景图的实现方法
2017/09/15 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
Vue组件库发布到npm详解
2018/02/17 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
Python实现选择排序
2017/06/04 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
Pandas中resample方法详解
2019/07/02 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
python 字段拆分详解
2019/12/17 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
新课培训心得体会
2014/09/03 职场文书
高中班主任评语
2014/12/30 职场文书
欢迎词怎么写
2015/01/23 职场文书
庐山导游词
2015/02/03 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android