PHP:在页面上使用会话而不干扰在另一个页面上加载会话
<p>我正在使用CURL从外部URL下载一个大文件,并将其保存在我的服务器上。这可能需要几分钟的时间。在下载期间,我使用curl_setopt($ch, CURLOPT_PROGRESSFUNCTION,..来运行匿名函数,定期更新我的$_SESSION['download_progress']变量,以获取当前的下载信息。</p>
<p>现在,所有这些都发生在upload.php文件中,当用户等待文件下载时,我使用JavaScript请求progress.php页面,其中包含以下简单代码:</p>
<pre class="brush:php;toolbar:false;">session_start();
echo $_SESSION['download_progress'];</pre>
<p>这允许我的JavaScript代码显示有关下载进度的信息。</p>
<p>除了它不起作用。</p>
<p>"progress.php"页面在"upload.php"完成加载之前不会加载(换句话说,在文件下载完成之后两个页面才加载),这是不好的。session_start()在某种程度上阻止了"progress.php"页面的加载。我使用自己的服务器(apache php 5.4),所以我有所有的管理员权限。</p>
<p>我该如何解决这个问题?我可以使用一些不好看的解决方法,例如将下载信息写入文本文件而不是session变量,然后使用JavaScript直接读取该文本文件,但我宁愿不这样做。谢谢</p><p><br /></p>