메뉴 건너뛰기

프로그램언어

조회 수 635 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
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");
}

  1. 파일 이름에서 확장자 추출마스터

    Date2017.03.07 Views20112
    Read More
  2. 파일 업로드 (중복처리)

    Date2017.03.06 Views20236
    Read More
  3. 파일 삭제

    Date2015.04.14 Views25367
    Read More
  4. 파일 및 데이타베이스 백업

    Date2019.01.08 Views1628
    Read More
  5. 파일 다운로드 함수(멀티 이어받기/속도제한)

    Date2020.06.19 Views635
    Read More
  6. 파일 output을 return 하기

    Date2021.03.26 Views260
    Read More
  7. 파일

    Date2019.01.08 Views1236
    Read More
  8. 특정일의 주차 구하기

    Date2021.07.08 Views344
    Read More
  9. 특수문자 없애는 정규표현식

    Date2014.03.26 Views21662
    Read More
  10. 템플릿 관련 정보

    Date2016.08.22 Views20773
    Read More
  11. 태그 또는 멘션 소스 뽐아내기방법

    Date2019.01.16 Views1269
    Read More
  12. 키를 이용한 암호화/복호화 함수입니다.

    Date2018.07.24 Views5774
    Read More
  13. 클래스와 인스턴스 그리고 메소드 만들기

    Date2021.03.27 Views246
    Read More
  14. 큰따옴표(") 와 작은따옴표(')

    Date2021.03.25 Views297
    Read More
  15. 쿠폰번호 발행 업데이트판. (간단한 클래스화[PHP4 기준] 등...)

    Date2018.07.19 Views6165
    Read More
  16. 쿠키변수받기

    Date2014.02.27 Views29254
    Read More
  17. 쿠키 확인 후 만료시 세션 파괴하는 방법

    Date2020.11.23 Views342
    Read More
  18. 콜론 연산자

    Date2021.03.26 Views315
    Read More
  19. 코드 생성 하기

    Date2023.01.12 Views235
    Read More
  20. 체크박스, post 로 넘기고 받아서 다시 체크하기, checkbox

    Date2017.03.07 Views21179
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved