나는 매우 간단하고 표준적인 PHP 강제 다운로드 스크립트를 가지고 있습니다.다운로드가 완료되면 탐지
클라이언트 측에서 사용자에게 알리기 위해 다운로드가 완료되었는지 여부를 어떻게 확인합니까? 실시간으로 진행 상황을 표시 할 필요조차 없으며 매우 특정한 이벤트에만 관심이 있습니다. "다운로드가 완료되면"입니다. 내 연구를 바탕으로, 그것은 서버 측에서 결정되어야 할 것 같습니다. ondownloadready
이벤트가 없기 때문에 브라우저 이벤트를 가로 챌 수는 없다고 생각합니다.
그래서 가장 좋은 방법은 일종의 clientside/severside 상호 작용으로 총 바이트 수를 비교하는 것입니다. PHP 강제 다운로드를 위해 서버에서 보낸 바이트를 확인하는 방법은 무엇입니까? AJAX로 핑 (ping) 할 수있는 이러한 데이터를 저장하는 일종의 글로벌 PHP 변수가 있습니까?
<?php
header("Content-Type: video/x-msvideo");
header("Content-Disposition: attachment; filename=\"".basename($realpath)."\";");
...
$chunksize = 1 * (1024 * 1024); // how many bytes per chunk
if ($size > $chunksize) {
$handle = fopen($realpath, 'rb');
$buffer = '';
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
ob_flush();
flush();
}
fclose($handle);
}
else {
readfile($realpath);
}
exit();
?>
나는이 필요한 이유 : 내가 일하고
프로젝트에 대한, 다운로드 시작 후 페이지가이 "기다려주십시오 다운로드가 완료되는 동안로 리디렉션 (또는 표시)하는 것이 필요하다 "페이지. 그런 다음 완료되면 "다운로드 완료, 감사합니다"페이지로 리디렉션 (또는 표시)해야합니다. 나는 같은 결과를 얻을 수있는 다른 아이디어에 대해 열려 있습니다.
+1 매우 명확하고 철저하게 질문을 작성하기위한 :
여기에 다운로드가 완료되면 감지하는 AJAX 설문 조사를 사용하여 설명 전체 스레드입니다. – jmort253