메뉴 건너뛰기

프로그램언어

조회 수 624 추천 수 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 Views20069
    Read More
  2. 파일 업로드 (중복처리)

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

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

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

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

    Date2021.03.26 Views246
    Read More
  7. 파일

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved