簡體   English   中英

在PHP中使用cURL下載大文件-頁面掛起

[英]Downloading large file with cURL in PHP - Page hangs

我有一個PHP腳本,可以從各個位置下載視頻。 視頻文件的大小可以在20mb到100mb +之間

我目前使用PHP將CURLOPT_FILE將視頻文件保存在目錄中。 一切正常,沒有任何問題。

由於要下載的文件很大,因此我將cURL超時時間設置為45分鍾以允許文件下載。 我還設置了set_time_limit(0),以便PHP頁面在下載完成后應繼續處理。 我還設置了ini_set(“ memory_limit”,“ 500M”); 下載完成后,應回顯“ Downloaded”,然后更新一條mysql記錄,說明文件已下載。

雖然發生了什么,但是視頻文件正在通過cURL正確下載,但在瀏覽器中卻沒有顯示“ Downloaded”,但正在更新mysql。

為什么是這樣? 我曾嘗試自己提出解決方案,但無法解決這里的問題是什么...

如果您在瀏覽器環境中,則瀏覽器將在特定時間后超時,因此即使腳本將繼續運行,它也將停止偵聽腳本的輸出。 隨瀏覽器的不同而不同,但是我看到的數字是30秒。

為了克服這個問題,您應該經常發送輸出(即使無意義的echo "<!--empty comment-->"; )也是如此。

最近,我遇到了類似的問題,我不通過腳本輸出任何內容,而是經常使用AJAX從瀏覽器中進行輪詢以查看是否完成了該問題。

或者,不要使用瀏覽器環境(因為它不太適合解決此問題),而應使用命令行提示符,因為它(據我所知)沒有這些超時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM