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 相关文章推荐
ftp类(example.php)
Oct 09 PHP
BBS(php &amp; mysql)完整版(六)
Oct 09 PHP
php实现的在线人员函数库
Apr 09 PHP
smarty section简介与用法分析
Oct 03 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
php实现utf-8和GB2312编码相互转换函数代码
Feb 07 PHP
深入PHP数据加密详解
Jun 18 PHP
PHP函数超时处理方法
Feb 14 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
老生常谈PHP面向对象之解释器模式
May 17 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 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中设置时区,记录日志文件的实现代码
2013/01/07 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
Python爬虫实例扒取2345天气预报
2018/03/04 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
基于Python解密仿射密码
2019/10/21 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
详解Python 函数参数的拆解
2020/09/02 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
Python项目打包成二进制的方法
2020/12/30 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
会计实习生自我鉴定
2013/12/12 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
门店店长岗位职责
2015/04/14 职场文书
Python基础知识之变量的详解
2021/04/14 Python
html粘性页脚的具体使用
2022/01/18 HTML / CSS
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python
什么是css原子化,有什么用?
2022/04/24 HTML / CSS
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python