아빠불당님 이걸로 테스트 해보세요. > 자유게시판

자유게시판

아빠불당님 이걸로 테스트 해보세요. 정보

아빠불당님 이걸로 테스트 해보세요.

본문

개인적으로 느리지만 보드를 하나 만들고 있는데 거기에 쓸 다운로더를 미리 공개하게 되네요.

이걸로 테스트해주시겠어요? 덕분에 저도 테스트할 겸.ㅎㅎ

방법은 첨부된 downloader.php를 lib폴더에 넣습니다.
 
bbs/download.php를 열고

if (file_exists($filepath)) {
    if(eregi("msie", $_SERVER[HTTP_USER_AGENT]) && eregi("5\.5", $_SERVER[HTTP_USER_AGENT])) {
        header("content-type: doesn/matter");
        header("content-length: ".filesize("$filepath"));
        header("content-disposition: attachment; filename=\"$original\"");
        header("content-transfer-encoding: binary");
    } else {
        header("content-type: file/unknown");
        header("content-length: ".filesize("$filepath"));
        header("content-disposition: attachment; filename=\"$original\"");
        header("content-description: php generated data");
    }
    header("pragma: no-cache");
    header("expires: 0");
    flush();

    if (is_file("$filepath")) {
        $fp = fopen("$filepath", "rb");

        // 4.00 대체
        // 서버부하를 줄이려면 print 나 echo 또는 while 문을 이용한 방법보다는 이방법이...
        //if (!fpassthru($fp)) {
        //    fclose($fp);
        //}

        while(!feof($fp)) {
            echo fread($fp, 100*1024);
            flush();
        }
        fclose ($fp);
        flush();
    } else {
        alert("해당 파일이나 경로가 존재하지 않습니다.");
    }

} else {
    alert("파일을 찾을 수 없습니다.");
}

를 찾은 후 다음으로 교체합니다.

include $g4['path'].'/lib/downloader.php';

$fd = new Downloader();
$fd->set($filepath, $original, 100, false);
$fd->download();

추천
0

첨부파일

downloader.php (11.8K) 5회 다운로드 2009-04-10 09:23:52
  • 복사

댓글 9개

왕~ 뭔 내용인지 모르겠지만 프로그램이 이뻐요. 개발하신다는 게시판 기대되요. ㅎㅎ

이게 그누의 download.php와 비교해서 좋은점이 뭔가요??? 궁금궁금...
opencode.co.kr 의 다운로드를 바꿨는데요, 이것도 1초에 죽네요.
처음 다운로드에서는...ㅠ..ㅠ...

저는 차이를 잘 못느끼겟어요. 확인해봐 주세요.
같은 증상의 글이 bugs.php.net 에도 올라와 있네요. http://bugs.php.net/bug.php?id=43306

content-transfer-encoding을 chunked로 놓고 다운하는 방법을 연구하다 그냥 내려놓았습니다.

마지막으로 이런 테스트를 해봄도 좋을 듯하네요.

        while(!feof($fp)) {
            echo fread($fp, 100*1024);
            flush();
        }

        echo fread($fp, filesize($filepath));
        flush();
© SIRSOFT
현재 페이지 제일 처음으로