当使用readfile() – 在Apache上使用PHP时 – 文件会立即读入Apache的输出缓冲区并完成PHP脚本执行,或者PHP脚本执行是否等到客户端完成下载文件(或服务器超时,以先发生者为准)?

记录器的背景故事:

我有一个网站,里面有很多大型mp​​3文件(当地教会的布道).并非所有音频存档中的文件都被下载,因此/sermon/{filename}.mp3路径被重写为真正执行/sermon.php?filename={filename},如果允许下载该文件,则内容type设置为“audio / mpeg”,文件使用readfile()流出.我一直在接受投诉(几乎全部来自通过3G下载流媒体的iPhone用户)文件没有完全下载,或者他们在大约10或15分钟后切断了.当我从带有readfile()的文件流式传输切换到只是重定向到文件 – header(“Location:$file_url”); – 所有的投诉都消失了(我甚至检查了一些用户,他们可以根据需要可靠地重现问题).

这让我怀疑当使用readfile()时,PHP脚本引擎一直在使用,直到文件完全下载,但我找不到任何确认或否认这个理论的引用.我承认我在ASP.NET世界中更像是家,而dotNet等效的readfile()会立即将整个文件推送到IIS输出缓冲区,因此ASP.NET执行管道可以独立于文件的传递而完成到最终客户端…是否有与PHP Apache相同的行为?

php大文件 readfile,php – Readfile()和大文件相关推荐

  1. 多线程读取大文件,尤其是对日志文件分析很有用。

    我在之前的公司里工作的时候,他们要求我做一个能够分析IIS日志的程序,可我做来做去,也只能做到,1个G的文件读取在140秒左右.愁了很久,想到了用多线程读取大文件的方法,又发现文件读取流可以有很多个, ...

  2. node 生产的env文件怎么注入_前端各种文件上传攻略,从小图片到大文件断点续传...

    写在前面 今年国庆假期终于可以憋在家里了不用出门了,不用出去看后脑了,真的是一种享受.这么好的光阴怎么浪费,睡觉.吃饭.打豆豆这怎么可能(耍多了也烦),完全不符合我们程序员的作风,赶紧起来把文章写完. ...

  3. python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战

    python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战 笔者遇到的问题是这样的, 在做机器学习模型的时候,有的时候会使用相关性分析的方法来进行特征的筛选,去除冗余特征,降 ...

  4. php怎样加密文件,如何使用php加密大文件并通过命令行解密?

    我正在用 PHP编写一个小脚本来备份我的文件.在我从服务器传输文件之前,我想加密它们. 我在我的脚本的早期版本中通过在我的Linux服务器上使用exec()和OpenSSL来做到这一点.现在我正在寻找 ...

  5. 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度——windows上的最快拷贝软件FastCopy

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度--windows上的最快拷贝软件FastCopy ...

  6. file 选择的文件胖多有多大_「HTML5 进阶」FileAPI 文件操作实战,内附详细案例,建议收藏...

    FileAPI 介绍 HTML5 为我们提供了 File API 相关规范.主要涉及 File 接口 和 FileReader 对象 . 本文整理了兼容性检测.文件选择.属性读取.文件读取.进度监控. ...

  7. 大数据WE阶段(十七)文件上传

    文件上传 一.概述 在web开发中经常需要从客户端向服务端上传文件 , 如: 照片 . 文件 , 这些通常都需要web开发中的文件上传技术实现. 二. 文件上传开发步骤 提供一个带有文件上传项的表单 ...

  8. mysql 日志 超过 m,linux 下查找大日志文件,比如大于500M的文件

    在实际生产环境中,有的时候有些文件我们不知道占用多大,这个时候我们需要进行查找命令来进行查看占用文件的大小,从而达到文件的清理,释放磁盘,保障磁盘充足,让网站资源不浪费,稳定运行,那么我们需要在lin ...

  9. java 文件分隔_java 实现大文件分隔成多个小文件

    public class FileTest { /** * 文件分隔器:给定文件的路径和每一块要拆分的大小,就可以按要求拆分文件 * 如果指定的块给原文件都还要大,为了不动原文件,就生成另一个文件,以 ...

  10. java实现对大文件切割下载_Java实现大文件的切割与合并操作示例

    Java实现大文件的切割与合并操作示例 发布时间:2020-09-27 02:25:08 来源:脚本之家 阅读:99 作者:HiBoyljw 本文实例讲述了Java实现大文件的切割与合并操作.分享给大 ...

最新文章

  1. android post请求添加公共参数_Java实现通用的Get和Post请求组件
  2. html li标签横向排列_HTML简易的常用标签
  3. [Pyhon疫情大数据分析] 三.新闻信息抓取及词云可视化、文本聚类和LDA主题模型文本挖掘
  4. qt中如何模拟按钮点击_qt – 在Windows中模拟鼠标按钮单击
  5. 在linux安装不了apache,Apache 不能安装在linux?
  6. 下岗职工_下岗后我如何获得多位软件工程师的面试
  7. mysql获取各种日期
  8. Celery实现定时任务crontab
  9. Macbook pro/air 2013 late -2014 使用转接卡更换NVME SSD休眠不醒问题的解决办法
  10. c语言用flag找2-n素数,C语言求素数和
  11. K3S配置IPV6环境
  12. 微信备份服务器,数码早知道 篇五:终于支持微信备份了!群晖Drive X 内测信息流出汇总!...
  13. War3地图编辑器基础:物体编辑器F6(自定义单位+单位属性设置)
  14. 大数据入门看哪些书比较好
  15. 数据结构:八大常见数据结构
  16. 从单个系统到云翼一体化支撑,京东云DevOps推进中的一波三折
  17. 51Nod-1106质数检测
  18. scrapy实例 ----- 爬取小说
  19. 孕妇 计算机房,孕妇可以进机房吗
  20. C语言学习——渐渐发现程序世界的奇妙

热门文章

  1. 解决Mac使用Win10局域网共享打印机没反应问题
  2. check 约束无效
  3. 手机170号段银行不识别 运营商称正努力解决
  4. 自己动手写一个jQuery插件(第二篇)
  5. 卡里·纪伯伦 《我曾经七次鄙视自己的灵魂》
  6. 按位与运算()和按位或运算符(|)
  7. 华为云连接XShell
  8. 一款综合(QQ 音乐、微信、美团、优酷、虎牙直播等多款 app)风格的搜索控制器...
  9. 51单片机学习笔记_6 IO通信:电脑与单片机之间的通信
  10. LiveGBS国标GB/T28181流媒体服务查看通道设备录像查看接入设备的前端录像