메뉴 건너뛰기

프로그램언어

조회 수 618 추천 수 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. No Image 07Mar
    by
    2017/03/07 Views 20061 

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

  2. No Image 06Mar
    by
    2017/03/06 Views 20184 

    파일 업로드 (중복처리)

  3. No Image 14Apr
    by
    2015/04/14 Views 25334 

    파일 삭제

  4. No Image 08Jan
    by
    2019/01/08 Views 1610 

    파일 및 데이타베이스 백업

  5. No Image 19Jun
    by 조쉬
    2020/06/19 Views 618 

    파일 다운로드 함수(멀티 이어받기/속도제한)

  6. No Image 26Mar
    by
    2021/03/26 Views 243 

    파일 output을 return 하기

  7. No Image 08Jan
    by
    2019/01/08 Views 1226 

    파일

  8. No Image 08Jul
    by
    2021/07/08 Views 322 

    특정일의 주차 구하기

  9. No Image 26Mar
    by
    2014/03/26 Views 21623 

    특수문자 없애는 정규표현식

  10. No Image 22Aug
    by
    2016/08/22 Views 20732 

    템플릿 관련 정보

  11. No Image 16Jan
    by
    2019/01/16 Views 1249 

    태그 또는 멘션 소스 뽐아내기방법

  12. No Image 24Jul
    by
    2018/07/24 Views 5741 

    키를 이용한 암호화/복호화 함수입니다.

  13. No Image 27Mar
    by
    2021/03/27 Views 231 

    클래스와 인스턴스 그리고 메소드 만들기

  14. No Image 25Mar
    by
    2021/03/25 Views 270 

    큰따옴표(") 와 작은따옴표(')

  15. No Image 19Jul
    by
    2018/07/19 Views 6039 

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

  16. No Image 27Feb
    by
    2014/02/27 Views 29211 

    쿠키변수받기

  17. No Image 23Nov
    by
    2020/11/23 Views 314 

    쿠키 확인 후 만료시 세션 파괴하는 방법

  18. No Image 26Mar
    by
    2021/03/26 Views 307 

    콜론 연산자

  19. No Image 12Jan
    by
    2023/01/12 Views 213 

    코드 생성 하기

  20. No Image 07Mar
    by
    2017/03/07 Views 21131 

    체크박스, post 로 넘기고 받아서 다시 체크하기, checkbox

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved