我試圖建立一種使用PHP和cURL擴展的基於web的下載管理器,但我仍然遇到了一個問題,我如何使用cURL下載和保存文件,而不必讓用戶等待,這意味着他將提出請求並在後臺處理。如何在PHP的後臺運行cURL請求?
現在我不能使用系統調用(exec,system ...等),因爲我使用的大多數主機都禁用了這些函數,另一個問題是PHP腳本的最大執行時間,但我想這個一個可以在.htaccess中改變或使用ini_set或不可以?
我讀過的地方,將connect_timeout設置爲1將工作,但不會終止連接?
一個解決方案是使用cronjobs,在用戶提交他想下載的文件後,cronjob會檢查數據庫,如果隊列中有文件,它會開始下載它,但我想我想盡可能避免使用cron作業。
所以回的主要問題,是有沒有辦法告訴PHP腳本在後臺運行一些特定的功能,無論提供該功能的結果給用戶的響應
感謝
我剛剛閱讀了你發佈的鏈接,這就是爲什麼我用粗體表示的問題,問題依然存在,這是否會終止連接?說我有一個大文件,我用cURL請求它,然後將超時設置爲1,請求被終止?,再加上使用JS意味着vvisitor將不得不保持打開頁面,直到下載完成爲止?如果他們關閉該頁面,下載將停止?我在這裏討論1 GB文件,所以它必須依賴於服務器,因爲訪問者不應該等待那麼長時間,他們會排隊文件並離開 –
HTTP是一種無狀態協議,即沒有連接服務器會關心。它接收到一個請求並運行它應該執行的任何邏輯,直到完成爲止,然後發送響應。客戶是否仍然收到該響應並不重要。響應超時告訴客戶端等待響應需要多長時間,但與服務器上發生的情況無關。 – joerx
感謝您的鏈接:) –