php readfile下载大文件失败的解决方法


Posted in PHP onMay 22, 2017

本文实例讲述了php readfile下载大文件失败的解决方法。分享给大家供大家参考,具体如下:

大文件有200多M,只下载了200K就提示下载完成,且不报错。

原因是PHP内存有限制,需要改为按块下载,就是把大文件切块后逐块下载

if (file_exists($file))
{
  if (FALSE!== ($handler = fopen($file, 'r')))
  {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: chunked'); //changed to chunked
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    //header('Content-Length: ' . filesize($file)); //Remove
    //Send the content in chunks
    while(false !== ($chunk = fread($handler,4096)))
    {
      echo $chunk;
    }
  }
  exit;
}
echo "<h1>Content error</h1><p>The file does not exist!</p>";

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP6 先修班 JSON实例代码
Aug 23 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
PHP扩展开发入门教程
Feb 26 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
[原创]PHP简单开启curl的方法(测试可行)
Jan 11 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
PHP实现图片的等比缩放和Logo水印功能示例
May 04 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
php实现微信支付之退款功能
May 30 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 #PHP
PHP中trait使用方法详细介绍
May 21 #PHP
php写app接口并返回json数据的实例(分享)
May 20 #PHP
PHP实现json_decode不转义中文的方法
May 20 #PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 #PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 #PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 #PHP
You might like
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
PHP查询分页的实现代码
2017/06/09 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
用Python实现一个简单的线程池
2015/04/07 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
python中Mako库实例用法
2020/12/31 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
服务中心夜班服务员岗位职责
2013/11/27 职场文书
先进党支部事迹材料
2014/01/13 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
心理健康活动总结
2014/04/30 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
交警失职检讨书
2015/01/26 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书