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使用者状态管理功能的应用
Oct 09 PHP
E路文章系统PHP
Dec 11 PHP
用PHP写的MySQL数据库用户认证系统代码
Mar 22 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
Apr 03 PHP
laravel框架实现后台登录、退出功能示例
Oct 31 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来自动调用不同服务器上的flash
2006/10/09 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
python使用cPickle模块序列化实例
2014/09/25 Python
Python中对列表排序实例
2015/01/04 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
python调用API实现智能回复机器人
2018/04/10 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
pytorch逐元素比较tensor大小实例
2020/01/03 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
工程现场管理求职自荐信
2013/10/02 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
某某同志考察材料
2014/05/28 职场文书
博士生导师推荐信
2014/07/08 职场文书
简单租房协议书
2014/10/21 职场文书
国庆节主题班会
2015/08/15 职场文书
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android