RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

function fDown($file,$name,$downview,$speed,$limit)// 경로, 원파일명, 다운/보임, 다운속도, 속도제한여부

{

    if(!file_exists($file))

        die('File not exist!');

    $size = filesize($file);

    $name = rawurldecode($name);



    if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']))

        $UserBrowser = "Opera";

    elseif (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']))

        $UserBrowser = "IE";

    else

        $UserBrowser = '';



    // 브라우저 정의

    $mime_type = ($UserBrowser == 'IE' || $UserBrowser == 'Opera')? 'application/octetstream' : 'application/octet-stream';

    @ob_end_clean(); // decrease cpu usage extreme

    Header('Content-Type: ' . $mime_type);

    Header('Content-Disposition: $downview; filename="'.$name.'"');

    Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

    Header('Accept-Ranges: bytes');

    Header("Cache-control: private");

    Header('Pragma: private');



    //  multipart-download and resume-download

    if(isset($_SERVER['HTTP_RANGE']))

    {

        list($a, $range) = explode("=",$_SERVER['HTTP_RANGE']);

        str_replace($range, "-", $range);

        $size2 = $size-1;

        $new_length = $size-$range;

        Header("HTTP/1.1 206 Partial Content");

        Header("Content-Length: $new_length");

        Header("Content-Range: bytes $range$size2/$size");

    } else {

        $size2=$size-1;

        Header("Content-Length: ".$size);

    }

    $chunksize = 1*(1024*$speed); // 속도제한값

    $this->bytes_send = 0;

    if ($file = fopen($file, 'rb'))

    {

        if(isset($_SERVER['HTTP_RANGE']))

            fseek($file, $range);

        while(!feof($file) and (connection_status()==0))

        {

            $buffer = fread($file, $chunksize);

            print($buffer);//echo($buffer); // is also possible

            flush();

            $this->bytes_send += strlen($buffer);

            if($limit) sleep(1); // 다운로드 속도제한

        }

        fclose($file);

    } else

        die('Error can not open file!!');

    if(isset($new_length))

        $size = $new_length;

    die();

    Header("Connection: close");

}
이올린에 북마크하기
2007/08/01 13:35 2007/08/01 13:35
http://jiny.kr/trackback/209
전체 (406)
지니소식 (4)
자료실 (4)
정보|뉴스 (5)
SmartPhone (1)
Languages (206)
Server (153)
Database (27)
Design (4)
Gallery (0)
분류하기귀찬.. (2)
«   2012/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
  1. 창의력과 상상력을 넘어서  2009
    Tomcat 6.0 기본 환경 설정
  2. 닥공  2009
    서블릿 tomcat 6.0 실행시 에러
  1. 2010/07 (1)
  2. 2010/05 (1)
  3. 2010/02 (3)
  4. 2010/01 (3)
  5. 2009/05 (2)
Statistics Graph