PHP 기반 파일 터널링으로 재개 가능한 다운로드
PHP가 파일 다운로드를 위한 프록시로 사용되는 이 시나리오에서 사용자는 문제에 직면합니다. 중단된 다운로드를 재개합니다. 이 문서의 목적은 이 문제를 해결하고 가능한 솔루션을 탐색하는 것입니다.
PHP에서 재개 가능한 다운로드 구현
재개 가능한 다운로드를 활성화하려면 처음에 부분 콘텐츠에 대한 서버의 지원을 전달해야 합니다. "Accept-Ranges: bytes" 헤더를 통해. 이후 요청에 "Range: bytes=x-y" 헤더(x와 y는 숫자 값을 나타냄)가 포함된 경우 요청된 범위를 추출하고 이에 따라 파일 전송을 조작해야 합니다.
다음 PHP 코드가 이를 수행합니다. :
$filesize = filesize($file); $offset = 0; $length = $filesize; if (isset($_SERVER['HTTP_RANGE'])) { preg_match('/bytes=(\d+)-(\d+)?/', $_SERVER['HTTP_RANGE'], $matches); $offset = intval($matches[1]); $length = intval($matches[2]) - $offset; } $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!