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 相关文章推荐
PHP如何透过ODBC来存取数据库
Oct 09 PHP
CI(CodeIgniter)框架配置
Jun 10 PHP
destoon之一键登录设置
Jun 21 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
浅谈php+phpStorm+xdebug配置方法
Sep 17 PHP
php mongodb操作类 带几个简单的例子
Aug 25 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
深入分析PHP设计模式
Jun 15 PHP
通过代码实例解析PHP session工作原理
Dec 11 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.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
php rsa加密解密使用详解
2015/01/14 PHP
为你总结一些php系统类函数
2015/10/21 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
Python httplib,smtplib使用方法
2008/09/06 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
工艺员岗位职责
2014/02/11 职场文书
贺卡寄语大全
2014/04/11 职场文书
校外活动方案
2014/08/28 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python