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 相关文章推荐
获得Google PR值的PHP代码
Jan 28 PHP
Ajax PHP 边学边练 之三 数据库
Nov 26 PHP
php 获取select下拉列表框的值
May 08 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
PHP微信红包API接口
Dec 05 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
php layui实现前端多图上传实例
Jul 30 PHP
PHP 实现链式操作
Mar 09 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中使用smarty生成静态文件的例子
2014/04/24 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
PHP中“=&gt;
2019/03/01 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
javascript每日必学之多态
2016/02/23 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python元组的概念知识点
2019/11/19 Python
python第三方库学习笔记
2020/02/07 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
数据库的约束含义
2012/09/09 面试题
英文自荐信格式
2013/11/28 职场文书
导游实习生自荐书
2014/01/28 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
Spring Boot 实现 WebSocket
2022/04/30 Java/Android