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运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
php下获取http状态的实现代码
May 09 PHP
php一行代码获取文件后缀名实例分析
Nov 12 PHP
wampserver改变默认网站目录的办法
Aug 05 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
PHP等比例压缩图片的实例代码
Jul 26 PHP
laravel中的一些简单实用功能
Nov 03 PHP
php和redis实现秒杀活动的流程
Jul 17 PHP
PHP常用函数之格式化时间操作示例
Oct 21 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
浅谈如何提高PHP代码的质量
May 28 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学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
javascript 三种编解码方式
2010/02/01 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
python网络编程之读取网站根目录实例
2014/09/30 Python
基于Python的接口测试框架实例
2016/11/04 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
python读写配置文件操作示例
2019/07/03 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
运动会闭幕词
2015/01/28 职场文书
区域经理岗位职责
2015/02/02 职场文书
护士个人年度总结范文
2015/02/13 职场文书
结婚司仪主持词
2015/06/29 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL