問題陳述
具有動態檔案下載機制的頁面需要一個視覺指示器下載完成時發出訊號。然而,當出現「儲存」對話方塊時,瀏覽器並不總是觸發事件來指示文件接收。
伺服器回應限制
「內容處置:「附件」標頭指示瀏覽器顯示「儲存」對話框,但它會抑制用於事件的iframe 的載入
建議的解決方案
利用JavaScript和伺服器端 cookie 實作基於客戶端的解決方案:
客戶端演算法
範例實作
伺服器端PHP
var downloadToken = setFormToken(); var downloadTimer = setInterval(function() { var token = getCookie("fileDownloadToken"); if(token == downloadToken) { unblockSubmit(); } }, 1000);
// Set a cookie to unblock the submit button when download starts $this->setCookieToken("downloadToken", $_GET["downloadToken"]); $result = $this->sendFile();不
不
以上是我們如何在沒有瀏覽器事件的情況下可靠地偵測瀏覽器檔案下載完成?的詳細內容。更多資訊請關注PHP中文網其他相關文章!