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 用checkbox一次性删除多条记录的方法
Feb 23 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
php实现的常见排序算法汇总
Sep 08 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 PHP
PHP常用的排序和查找算法
Aug 06 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
基于PHP常用文件函数和目录函数整理
Aug 17 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
php curl发送请求实例方法
Aug 01 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 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
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
python字符串连接方法分析
2016/04/12 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
马来西亚网上购物:Youbeli
2018/03/30 全球购物
外企财务年会演讲稿
2014/01/03 职场文书
家长会学生演讲稿
2014/04/26 职场文书
企业职业病防治方案
2014/05/29 职场文书
村级个人对照检查材料
2014/08/22 职场文书
求职信范文怎么写
2015/03/19 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
大学推普周活动总结
2015/05/07 职场文书
海上钢琴师观后感
2015/06/03 职场文书
高三数学教学反思
2016/02/18 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL