문제 설명
동적 파일 다운로드 메커니즘을 갖춘 페이지에는 시각적 표시기가 필요합니다. 다운로드가 완료되면 신호를 보냅니다. 그러나 "저장" 대화 상자가 나타날 때 브라우저가 항상 파일 수신을 나타내는 이벤트를 트리거하는 것은 아닙니다.
서버 응답 제한
"콘텐츠 처리: attachment" 헤더는 브라우저에 "저장" 대화 상자를 표시하도록 지시하지만 이벤트에 사용되는 iframe 로드를 억제합니다. 모니터링.
제안된 솔루션
JavaScript 및 서버 측 쿠키를 활용하는 클라이언트 기반 솔루션 구현:
클라이언트 알고리즘
서버 알고리즘
구현 예
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!