PHP下载文件时,存在很大的延迟

时间:2013-11-28 21:17:17

标签: php file download

这是我的文件下载代码:

            set_time_limit(0);
            header('Set-Cookie: fileDownload=true; path=/'); //used for the file download library for the browser client https://github.com/johnculviner/jquery.fileDownload . Remove if the library isn't used anymore
            header('Content-disposition: attachment; filename="' . $file->getName() . '"');
            header('Content-Type: application/octet-stream');
            header("Pragma: public");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            while (!feof($stream)) {
                    echo fread($stream, 8192);
                    ob_flush();
                    flush();
            }

问题在于,当我打开文件的url并且文件大小超过100MB时,下载实际启动会有很大的延迟。有人可以向我解释是什么导致它以及如何解决? 编辑:问题解决了。事实证明,我的网络服务器默认启用了输出缓冲。

1 个答案:

答案 0 :(得分:1)

由于您使PHP加载整个文件并将其全部输出一次,因此存在很大的延迟。请参阅此问题Streaming a large file using PHP,了解如何流式传输数据,而不是在一个大负载中提供数据。