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 相关文章推荐
一个简单的自动发送邮件系统(三)
Oct 09 PHP
一些php技巧与注意事项分析
Feb 03 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
Feb 27 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
php格式化日期和时间格式化示例分享
Feb 24 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
php加密解密字符串示例
2016/10/13 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
Python中如何定义一个函数
2016/09/06 面试题
国际贸易个人求职信范文
2014/01/04 职场文书
护士自我评价范文
2014/01/25 职场文书
荷叶圆圆教学反思
2014/02/01 职场文书
银行求职信
2014/05/31 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
消防宣传语大全
2015/07/13 职场文书
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL
python中使用redis用法详解
2022/12/24 Redis