메뉴 건너뛰기

프로그램언어

조회 수 822 추천 수 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. 13자리 timestamp 생성하기

  2. No Image 28Sep
    by
    2020/09/28 Views 1313 

    cUrl를 이용한 json 데이타 주고 받기

  3. Javascript 두 좌표 사이의 거리 구하기, 두 좌표의 중앙 좌표 구하기

  4. No Image 22Sep
    by
    2020/09/22 Views 614 

    네이버 지도 API를 이용한 주소를 좌표로 변환하기 (PHP)

  5. No Image 24Aug
    by
    2020/08/24 Views 538 

    사업자등록번호 유효성 체크

  6. No Image 19Jun
    by
    2020/06/19 Views 671 

    멀티 파일다운로드 꽁수로 구현하기

  7. No Image 19Jun
    by 조쉬
    2020/06/19 Views 822 

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

  8. No Image 19Jun
    by
    2020/06/19 Views 717 

    다중 파일을 zip으로 묶어받기

  9. No Image 25May
    by
    2020/05/25 Views 845 

    사진이 회전되서 올라갈 경우

  10. No Image 31Dec
    by
    2019/12/31 Views 706 

    PHP 버전이 낮아 imagerotate() 함수가 없을때 대신 사용하는 함수

  11. No Image 24Jun
    by
    2019/06/24 Views 2012 

    PHP 외부 XML 파싱 하기

  12. 주간단위 시작일에서 종료일을 셀렉트박스로 만들기.

  13. No Image 29Apr
    by
    2019/04/29 Views 1444 

    utf-8 문자열을 주어진 바이트로 자르기

  14. No Image 25Feb
    by
    2019/02/25 Views 1617 

    PHP $_SERVER 함수

  15. No Image 19Feb
    by
    2019/02/19 Views 1616 

    PHP에서 UTF와 EUC-KR 변환

  16. PHP 가변변수 $$

  17. No Image 19Feb
    by
    2019/02/19 Views 2255 

    PHP http 를 https 로 전환(redirect), http->https

  18. No Image 19Feb
    by
    2019/02/19 Views 1298 

    input 자동완성기능 끄기

  19. No Image 16Jan
    by
    2019/01/16 Views 1915 

    dddotag - 허용하지 않는 태그 걸러내기

  20. No Image 16Jan
    by
    2019/01/16 Views 1383 

    애니메이션 gif 와 일반 gif 구분 하기

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

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved