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 的几个配置文件函数
Dec 21 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
PHP网站备份程序代码分享
Jun 10 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
PHP向socket服务器收发数据的方法
Jan 24 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 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防注
2007/01/15 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
构建Python包的五个简单准则简介
2015/06/15 Python
Python闭包函数定义与用法分析
2018/07/20 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
Python如何合并多个字典或映射
2020/07/24 Python
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
六年级数学教学反思
2014/02/03 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
求职简历自荐信
2014/06/18 职场文书
小学课外阅读总结
2014/07/09 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
借条如何写
2015/05/26 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
合作意向书怎么写
2019/06/24 职场文书
分享7个 Python 实战项目练习
2022/03/03 Python