PHP 스크립팅에서 재개 가능한 다운로드
파일 경로를 보호하기 위해 PHP 스크립트를 통해 파일 다운로드를 터널링할 때 기본 방법이 지원하지 않는다는 것이 분명해졌습니다. 재개 가능한 다운로드. 이 문제를 해결하려면 다음 해결 방법을 고려하십시오.
재개 가능한 다운로드 지원의 핵심은 부분 콘텐츠 처리를 구현하는 것입니다. 이를 시작하려면 모든 응답에 Accept-Ranges: bytes 헤더를 보내 부분 콘텐츠에 대한 지원을 나타냅니다.
Range: bytes=x-y 헤더가 포함된 요청을 받으면 클라이언트가 지정한 범위를 구문 분석합니다. 파일을 열고 x 바이트를 찾아 요청된 y - x 바이트를 보냅니다. 또한 응답 상태를 HTTP/1.0 206 부분 콘텐츠로 설정합니다.
다음은 이 접근 방식을 느슨하게 따르는 기본 PHP 코드 조각입니다.
$filesize = filesize($file); if (isset($_SERVER['HTTP_RANGE'])) { $partialContent = true; preg_match('/bytes=(\d+)-(\d+)?/', $_SERVER['HTTP_RANGE'], $matches); $offset = intval($matches[1]); $length = intval($matches[2]) - $offset; } else { $partialContent = false; } $file = fopen($file, 'r'); fseek($file, $offset); $data = fread($file, $length); fclose($file); if ($partialContent) { header('HTTP/1.1 206 Partial Content'); header('Content-Range: bytes ' . $offset . '-' . ($offset + $length) . '/' . $filesize); } header('Content-Type: ' . $ctype); header('Content-Length: ' . $filesize); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Accept-Ranges: bytes'); print($data);
이 메커니즘을 통합하면 재개 가능 터널링을 위한 PHP 스크립트를 활용하여 파일 위치의 개인 정보를 유지하면서 다운로드합니다.
위 내용은 파일 경로를 보호하면서 PHP에서 재개 가능한 다운로드를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!