2015-02-11 25 views
0

我試圖製作一個PHP下載程序。頁面仍在下載時回顯字符串

echo '<p>Downloading New Update</p>'; 
$newUpdate = file_get_contents('http://your-server.com/update.zip'); 
echo 'Done downloading'; 

當我運行該腳本(說的zip需要長時間下載),頁面加載,直到其完全下載,然後顯示在同一時間的Downloading New UpdateDone downloading

我想要的是在完成下載之前顯示Downloading New Update。當它是,Done downloading必須出現。

如何將此腳本與Ajax,Jquery,Javascript結合使用以創建更加動態的下載器?

+2

創建一個div,表示首先下載更新,然後使用ajax獲取數據並將div文本設置爲「完成下載」。簡單 – 2015-02-11 13:49:12

+0

你可以在這裏找到更多的信息:http://www.w3schools.com/php/php_ajax_intro.asp。如果你需要進一步的幫助,只需回覆:) – Izion 2015-02-11 13:51:55

+0

不能使用類似於:'xmlhttp.open(「GET」,「download_script.php」,true); xmlhttp.send();'?? – 2015-02-11 14:05:02

回答

1

簡單沖洗可能會解決這個任務

echo '<p>Downloading New Update</p>'; 
flush(); 
$newUpdate = file_get_contents('http://your-server.com/update.zip'); 
echo 'Done downloading'; 

,你需要確保該文本不是在表內。 然後瀏覽器應該使用漸進式渲染和文本應該真正apper。 你需要刷新的原因是,PHP實際上並沒有將文本從echo()發送到瀏覽器,直到滿足某些條件,如腳本完成或flush()明確調用