테스트 사이트 - 개발 중인 베타 버전입니다

다운로드 이어 받기 및 전송속도 제한 구현

· 18년 전 · 3133
http://www.webtr.co.kr/Test.zip 와 같이 직접 파일을 링크할 경우에는 웹서버에서
RANGE 를 지원하여 이어 받기가 가능하지만 http://www.webtr.co.kr/download.php 와 같이 스크립트를 통해 다운로드시에는 아래와 같은 작업을 하셔야 합니다.

$storage = "./files"; // 저장할 디렉토리명
$filename = $_GET['filename']; // 파일명
$filesize = filesize($storage . "/". $filename); // 파일크기
$speed = 1000; // 제한속도(초당 1M 를 넘지 못하도록 합니다.)
$seek_start = 0;
$seek_end = 0;
if(isset($_SERVER['HTTP_RANGE'])) {
$seek_range = substr($_SERVER['HTTP_RANGE'] , 6);
$range = explode( '-', $seek_range);
if($range[0] > 0) { $seek_start = intval($range[0]); }
if($range[1] > 0) { $seek_end = intval($range[1]); }
}

$file = $storage . "/". $filename;
// 파일을 오픈 한다.
$fp = fopen($file, "rb");
// 파일 포인터 이동
fseek($fp,$seek_start);
// 다운로드 헤더를 보내고
header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".$filesize-$seek_start);
header("Content-Disposition: filename=".$filename);

// 파일을 보내보자!!
while(!feof($fp)) {
set_time_limit(0);
echo fread($fp,round(1024*$speed));
flush();
sleep(1);
}
fclose($fp);

http://www.webtr.co.kr/manual <- 샘플보기<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
12438
12437
12436
12435
12434
12433
12432
12431
12430
12429
12428
12427
12426
12425
12424
12423
12422
12421
12420
12419
12418
12417
12416
12415
12414