兼容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中函数内引用全局变量的方法
Oct 20 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
PHP中设置时区方法小结
Jun 03 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
PHP保存带BOM文件的方法
Feb 12 PHP
PHP命名空间namespace用法实例分析
Sep 27 PHP
PHP自定义多进制的方法
Nov 03 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 30 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
Laravel+Intervention实现上传图片功能示例
Jul 09 PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 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
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
python解析xml文件实例分析
2015/05/27 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
三查三看党性分析材料
2014/02/18 职场文书
婚前保证书
2014/04/29 职场文书
产品销售计划书
2014/05/04 职场文书
法人委托书范本格式
2014/09/15 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android