我正在使用CURL從外部URL下載大文件並將其保存在我的服務器上。 這可能需要幾分鐘的時間。 雖然下載運行時我使用curl_setopt($ CH,CURLOPT_PROGRESSFUNCTION,..運行匿名函數週期性與當前下載更新的信息我的$ _SESSION [「download_progress」]變量。PHP:如何在一個頁面上使用會話,而另一個頁面正在加載sesson
現在,這一切都是在發生upload.php的文件,當用戶等待文件下載使用JavaScript來請求包含以下簡單的代碼progress.php頁:
session_start();
echo $_SESSION['download_progress'];
這讓我的JavaScript代碼來顯示有關信息下載進度。
除非無法正常工作。
直到「upload.php」完成加載(換句話說,兩個頁面只在文件完成下載後才加載),「progress.php」頁面纔會加載,這是不好的。 session_start()以某種方式阻止加載「progress.php」頁面。 我使用我自己的服務器(apache + php 5.4),所以我有所有管理員權限。
我怎樣才能解決這個問題? 我可以使用一些醜陋的解決方法,如將下載信息寫入txt文件而不是會話變量,然後使用javascript直接讀取該txt文件,但我寧願不這樣做。
感謝
據我所知,你應該工作,除非兩個文件都從同一個文件調用。例如,如果你有index.php?some_setting_to_load_load.php和index.php?some_setting_to_load_progress.php 你有沒有在線測試過,看看你是否得到不同的結果? – 2013-02-19 19:59:58