JWo*_*ood 7 php apache caching http
我正在研究一个PHP脚本,它可以在不知道长度的情况下动态生成大(多MB)输出.我正在直接写入php://output
via fwrite()
并尝试了标准输出和使用Transfer-Encoding: chunked
(根据需要编码块),但无论我尝试什么,浏览器都会等到所有数据都被写入,然后再显示下载对话框.我flush()
在标题之后和每个块之后都尝试了但是这也没有区别.
我猜测Apache正在缓存输出,因为浏览器通常会在从服务器接收到几KB后显示.
有没有人对如何停止此缓存以及在生成时将数据刷新到浏览器有任何想法?
谢谢,J
首先,就像 BlaM 在他的评论中提到的那样,如果在 PHP 配置中启用了 OutputBuffering,它将无法工作,因此了解您的 phpinfo() 会很有用。
接下来,尝试它是否适用于存储在您的网络服务器上的大文件,并使用 inf readfile 输出它。并且,同时检查您是否发送了正确的标头。有关如何 readfile() 并发送正确标头的提示,请参阅此处:StackOverflow:如何在 PHP 中强制下载文件
当您执行此操作时,请在脚本顶部调用ob_end_flush()或ob_end_clean() 。
归档时间: |
|
查看次数: |
1938 次 |
最近记录: |