본문 바로가기
Programming

[PHP 강좌] 46. 설치형 게시판 만들기 9 - 글보기,댓글,다운로드

by Mizix 2010. 2. 11.
반응형
안녕하세요.

새해 복많이 받으시길 바라며 오늘도 강좌를 이어가겠습니다.

이번 강좌는 게시판의 글보기 부분입니다.

먼저 글보기 전 비밀번호를 체크 하는 부분입니다.
<?
// 1. 공통 인클루드 파일
include ("./head.php");

// 2. 게시판 코드 검사
$bc_code = $_GET[bc_code];
if($bc_code){
    // 3. 게시판 코드가 있으면 게시판 설정 불러오기
    $b_config_sql = "select * from ".$_cfg['config_table']." where bc_code = '".$bc_code."'";
    $board_config = sql_fetch($b_config_sql);
}else{
    alert("게시판 코드가 없습니다.");
}

// 4. 존재하는 게시판인지 확인
if(!$board_config[bc_idx]){
    alert("존재 하지 않는 게시판입니다.");
}

// 5. 게시판 권한 체크
if($_SESSION[user_level]){
    $u_level = $_SESSION[user_level];
}else{
    $u_level = 0;
}

if($u_level < $board_config[bc_read_level]){
    alert("권한이 없습니다.", "./index.php");
}

// 6. 게시판 상단 이미지 출력
$dir = "./data/board_config";
$head_file = $dir."/".$board_config[bc_idx]."_head";

if($board_config[bc_head_file] && file_exists($head_file)){
?>
<br/>
<img src="<?=$head_file?>">
<?
}

// 7. 게시판 상단 내용 출력
if($board_config[bc_head]){
?>
<br/>
<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td align="left" valign="middle" style="font-zise:15px;"><?=$board_config[bc_head]?></td>
    </tr>
</table>
<?
}

// 8. 페이징 변수 설정
if($_GET[page] && $_GET[page] > 0){
    // 현재 페이지 값이 존재하고 0 보다 크면 그대로 사용
    $page = $_GET[page];
}else{
    // 그 외의 경우는 현재 페이지를 1로 설정
    $page = 1;
}

// 9. 글정보 가져오기
$b_idx = $_GET[b_idx];
$sql = "select * from ".$_cfg['board_table']." where bc_code = '".$bc_code."' and b_idx = '".$b_idx."'";
$data = sql_fetch($sql);

// 10. 해당 글이 있는지체크
if(!$data[b_idx]){
    alert("존재 하지 않는 글입니다.");
}

// 11.비밀번호 입력 출력
?>
<br/>
<table style="width:1000px;height:50px;border:5px #CCCCCC solid;">
    <tr>
        <td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">글보기 비밀번호 확인</td>
    </tr>
</table>
<br/>
<form name="passForm" method="post" action="./board_password_chk.php" style="margin:0px;">
<input type="hidden" name="bc_code" value="<?=$bc_code?>">
<input type="hidden" name="b_idx" value="<?=$b_idx?>">
<input type="hidden" name="page" value="<?=$_GET[page]?>">
<table style="width:1000px;height:50px;border:0px;">
    <tr>
        <td align="center" valign="middle" style="width:200px;height:50px;background-color:#CCCCCC;">비밀번호< /td>
        <td align="left" valign="middle" style="width:800px;height:50px;"><input type="password" name="b_pass" style="width:380px;"></td>
    </tr>
    <!-- 12. 글보기 버튼 클릭시 입력필드 검사 함수 pass_chk 실행 -->
    <tr>
        <td align="center" valign="middle" colspan="2"><input type="button" value=" 글보기 " onClick="pass_chk();">&nbsp;<input type="button" value=" 취소 " onClick="history.back();"></td>
    </tr>
</table>
</form>
<script>
// 13.입력필드 검사함수
function pass_chk()
{
    // 14.form 을 f 에 지정
    var f = document.passForm;

    if(f.b_pass.value == ""){
        alert("비밀번호를 입력해 주세요.");
        return false;
    }

    // 15.검사가 성공이면 form 을 submit 한다
    f.submit();

}
</script>
<?
// 16. 게시판 하단 내용 출력
if($board_config[bc_tail]){
?>
<br/>
<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td align="left" valign="middle" style="font-zise:15px;"><?=$board_config[bc_tail]?></td>
    </tr>
</table>
<?
}

// 17. 게시판 하단 이미지 출력
$dir = "./data/board_config";
$tail_file = $dir."/".$board_config[bc_idx]."_tail";

if($board_config[bc_tail_file] && file_exists($tail_file)){
?>
<br/>
<img src="<?=$tail_file?>">
<?
}
?>
[board_password.php 소스]

입력한 비밀번호를 체크하는 파일입니다.
<?
// 1. 공통 인클루드 파일
include ("./head.php");

// 2. 게시판 코드 검사
$bc_code = $_POST[bc_code];
if($bc_code){
    // 3. 게시판 코드가 있으면 게시판 설정 불러오기
    $b_config_sql = "select * from ".$_cfg['config_table']." where bc_code = '".$bc_code."'";
    $board_config = sql_fetch($b_config_sql);
}else{
    alert("게시판 코드가 없습니다.");
}

// 4. 존재하는 게시판인지 확인
if(!$board_config[bc_idx]){
    alert("존재 하지 않는 게시판입니다.");
}

// 5. 게시판 권한 체크
if($_SESSION[user_level]){
    $u_level = $_SESSION[user_level];
}else{
    $u_level = 0;
}

if($u_level < $board_config[bc_read_level]){
    alert("권한이 없습니다.", "./index.php");
}

// 6. 페이징 변수 설정
if($_POST[page] && $_POST[page] > 0){
    // 현재 페이지 값이 존재하고 0 보다 크면 그대로 사용
    $page = $_POST[page];
}else{
    // 그 외의 경우는 현재 페이지를 1로 설정
    $page = 1;
}

// 7. 글정보 가져오기
$b_idx = $_POST[b_idx];
$sql = "select * from ".$_cfg['board_table']." where bc_code = '".$bc_code."' and b_idx = '".$b_idx."'";
$data = sql_fetch($sql);

// 8. 해당 글이 있는지체크
if(!$data[b_idx]){
    alert("존재 하지 않는 글입니다.");
}

// 9. 비밀번호가 맞는지 체크
if($data[b_pass] == $_POST[b_pass]){
    // 10. 맞으면 해당글의 비밀번호 체크 여부를 세션에 저장하고 이동
    $_SESSION["b_pass_".$b_idx] = true;
    goto_url("./board_view.php?bc_code=".$bc_code."&b_idx=".$b_idx."&page=".$_POST[page]);
}else{
    alert("비밀번호가 다릅니다.");
}

?>
[board_password_chk.php 소스]

10번에서 비밀번호가 맞으면 세션에 저장을 하는데 세션의 이름을 b_pass_글번호 로 저장을 합니다.

글보기 부분 파일입니다.
<?
// 1. 공통 인클루드 파일
include ("./head.php");

// 2. 게시판 코드 검사
$bc_code = $_GET[bc_code];
if($bc_code){
    // 3. 게시판 코드가 있으면 게시판 설정 불러오기
    $b_config_sql = "select * from ".$_cfg['config_table']." where bc_code = '".$bc_code."'";
    $board_config = sql_fetch($b_config_sql);
}else{
    alert("게시판 코드가 없습니다.");
}

// 4. 존재하는 게시판인지 확인
if(!$board_config[bc_idx]){
    alert("존재 하지 않는 게시판입니다.");
}

// 5. 게시판 권한 체크
if($_SESSION[user_level]){
    $u_level = $_SESSION[user_level];
}else{
    $u_level = 0;
}

if($u_level < $board_config[bc_read_level]){
    alert("권한이 없습니다.", "./index.php");
}

// 6. 게시판 상단 이미지 출력
$dir = "./data/board_config";
$head_file = $dir."/".$board_config[bc_idx]."_head";

if($board_config[bc_head_file] && file_exists($head_file)){
?>
<br/>
<img src="<?=$head_file?>">
<?
}

// 7. 게시판 상단 내용 출력
if($board_config[bc_head]){
?>
<br/>
<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td align="left" valign="middle" style="font-zise:15px;"><?=$board_config[bc_head]?></td>
    </tr>
</table>
<?
}

// 8. 페이징 변수 설정
if($_GET[page] && $_GET[page] > 0){
    // 현재 페이지 값이 존재하고 0 보다 크면 그대로 사용
    $page = $_GET[page];
}else{
    // 그 외의 경우는 현재 페이지를 1로 설정
    $page = 1;
}

// 9. 글정보 가져오기
$b_idx = $_GET[b_idx];
$sql = "select * from ".$_cfg['board_table']." where bc_code = '".$bc_code."' and b_idx = '".$b_idx."'";
$data = sql_fetch($sql);

// 10. 해당 글이 있는지 와 비밀글이면 비밀번호 입력여부 체크체크
if(!$data[b_idx]){
    alert("존재 하지 않는 글입니다.");
}

if($data[b_is_secret] && !$_SESSION["b_pass_".$b_idx] && $_SESSION[user_id] != $data[m_id] && $u_level != 9){
    alert("비밀번호를 입력하여 주세요.");
}

// 11.글내용 출력
?>
<br/>
<table style="width:1000px;height:50px;border:5px #CCCCCC solid;">
    <tr>
        <td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">글보기</td>
    </tr>
</table>
<table style="width:1000px;height:50px;border:0px;">
    <tr>
        <td align="center" valign="middle" style="width:200px;height:50px;background-color:#CCCCCC;">글제목</td& gt;
        <td align="left" valign="middle" style="width:800px;height:50px;"><?=$data[b_title]?></td>
    </tr>
    <tr>
        <td align="center" valign="middle" style="width:200px;height:50px;background-color:#CCCCCC;">작성자명< /td>
        <td align="left" valign="middle" style="width:800px;height:50px;"><?=$data[m_name]?></td>
    </tr>
    <?

    // 12. 파일 업로드를 사용하면 파일 입력
    if($board_config[bc_use_file] && $data[b_filename]){
    ?>
    <tr>
        <td align="center" valign="middle" style="width:200px;height:50px;background-color:#CCCCCC;">첨부파일< /td>
        <td align="left" valign="middle" style="width:800px;height:50px;"><a href="./download.php?bc_code=<?=$bc_code?>&b_idx=<?=$b_idx?>"><?=$data[b_filename]?></a></td>
    </tr>
    <?
    }
    ?>
    <tr>
        <td align="center" valign="middle" style="width:200px;height:200px;background-color:#CCCCCC;">글내용< /td>
        <td align="left" valign="middle" style="width:800px;height:200px;"><?=nl2Br($data[b_contents])?></td>
    </tr>
</table>
<br/>
<table style="width:1000px;height:50px;">
    <tr>
        <td align="center" valign="middle"><input type="button" value=" 목록보기 " onClick="location.href='./board_list.php?bc_code=<?=$bc_code?>&page=<?=$page?>';"></td>
    <?// 13. 권한 체크 후 답글쓰기 보여주기?>
    <?if($board_config[bc_use_reply ] && $u_level >= $board_config[bc_reply_level]){?>
        <td align="center" valign="middle"><input type="button" value=" 답글쓰기 " onClick="location.href='./board_reply.php?bc_code=<?=$bc_code?>&b_idx=<?=$b_idx?>&page=<?=$page?>';"></td>
    <?}?>
    <?// 13. 권한 체크 후 글수정 보여주기?>
    <?if($_SESSION[user_id] == $data[m_id] || $u_level == 9){?>
        <td align="center" valign="middle"><input type="button" value=" 글수정 " onClick="location.href='./board_modify.php?bc_code=<?=$bc_code?>&b_idx=<?=$b_idx?>&page=<?=$page?>';"></td>
    <?}?>
    <?// 13. 권한 체크 후 글삭제 버튼 보여주기?>
    <?if($_SESSION[user_id] == $data[m_id] || $u_level == 9){?>
        <td align="center" valign="middle"><input type="button" value=" 글삭제 " onClick="location.href='./board_delete.php?bc_code=<?=$bc_code?>&b_idx=<?=$b_idx?>&page=<?=$page?>';"></td>
    <?}?>
    </tr>
</table>

<?
// 13. 댓글 부분 권한 체크 및 출력 결정
if($board_config[bc_use_comment]){

    // 14. 댓글 권한 체크 후 댓글쓰기 부분 출력
    if($u_level >= $board_config[bc_comment_level]){
    ?>
    <br/>
    <table style="width:1000px;height:50px;border:5px #CCCCCC solid;">
        <tr>
            <td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">댓글작성</td>
        </tr>
    </table>
    <br/>
    <form name="bWriteForm" method="post" enctype="multipart/form-data" action="./board_comment_save.php" style="margin:0px;">
    <input type="hidden" name="bc_code" value="<?=$bc_code?>">
    <input type="hidden" name="b_idx" value="<?=$b_idx?>">
    <input type="hidden" name="page" value="<?=$page?>">
    <table cellspacing="1" style="width:1000px;height:50px;border:0px;background-color:#999999;">
        <tr>
            <td align="center" valign="middle" width="100" style="height:30px;background-color:#CCCCCC;">이름</td>
            <td align="center" valign="middle" width="800" style="height:30px;background-color:#CCCCCC;">댓글내용</td>
            <td align="center" valign="middle" width="100" style="height:30px;background-color:#CCCCCC;">&nbsp;</td>
        </tr>
        <tr>
            <td align="center" valign="middle" width="100" style="height:30px;background-color:#FFFFFF;">
            <input typr="text" name="m_name" <?if($_SESSION[user_idx]){ echo " value='".$_SESSION[user_name]."' readOnly";}?>  style="width:90px;">
            </td>
            <td align="center" valign="middle" width="800" style="height:30px;background-color:#FFFFFF;"><input type="text" name="co_contents" style="width:780px;"></td>
            <td align="center" valign="middle" width="100" style="height:30px;background-color:#FFFFFF;"><input type="button" value=" 댓글쓰기 " onClick="write_save();"></td>
        </tr>
    </table>
    <script>
    function write_save()
    {
        var f = document.bWriteForm;

        if(f.m_name.value == ""){
            alert("이름을 입력해 주세요.");
            return false;
        }

        if(f.co_contents.value == ""){
            alert("댓글내용을 입력해 주세요.");
            return false;
        }

        f.submit();
    }
    </script>
    </form>
    <?
    }


    // 15. 댓글 목록 출력
    ?>
    <br/>
    <table style="width:1000px;height:50px;border:5px #CCCCCC solid;">
        <tr>
            <td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">댓글목록</td>
        </tr>
    </table>
    <br/>
    <table cellspacing="1" style="width:1000px;height:50px;border:0px;background-color:#999999;">
        <tr>
            <td align="center" valign="middle" width="5%" style="height:30px;background-color:#CCCCCC;">번호</td>
            <td align="center" valign="middle" width="60%" style="height:30px;background-color:#CCCCCC;">댓글내용</td>
            <td align="center" valign="middle" width="15%" style="height:30px;background-color:#CCCCCC;">글쓴이</td>
            <td align="center" valign="middle" width="20%" style="height:30px;background-color:#CCCCCC;">작성일</td>
        </tr>
    <?

    // 16. 전체 댓글 갯수 알아내기
    $sql = "select count(*) as cnt from ".$_cfg['comment_table']." where b_idx = '".$b_idx."' ";
    $total_count = sql_total($sql);


    // 17. 댓글목록 구하기
    $query = "select * from ".$_cfg['comment_table']." where b_idx = '".$b_idx."' order by co_idx desc ";
    $result = mysql_query($query, $connect);

    // 18.데이터 갯수 체크를 위한 변수 설정
    $i = 0;

    // 19.데이터가 있을 동안 반복해서 값을 한 줄씩 읽기
    while($data_commnent = mysql_fetch_array($result)){


    ?>
        <tr>
            <td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><?=($total_count - $i )?></td>
            <td align="left" valign="middle" style="height:30px;background-color:#FFFFFF;">&nbsp;<?=$data_commnent[co_contents]?></td>
            <td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><?=$data_commnent[m_name]?></td>
            <td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><?=substr($data_commnent[co_regdate],0,10)?></td>
        </tr>
    <?
        // 21.데이터 갯수 체크를 위한 변수를 1 증가시킴
        $i++;
    }

    // 22. 댓글데이터가 하나도 없으면
    if($i == 0){
    ?>
        <tr>
            <td align="center" valign="middle" colspan="4" style="height:50px;background-color:#FFFFFF;">댓글이 하나도 없습니다.</td>
        </tr>
    <?
    }
}
// 댓글 목록 권한 체크 및 출력 결정 끝


// 20. 게시판 하단 내용 출력
if($board_config[bc_tail]){
?>
<br/>
<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td align="left" valign="middle" style="font-zise:15px;"><?=$board_config[bc_tail]?></td>
    </tr>
</table>
<?
}

// 21. 게시판 하단 이미지 출력
$dir = "./data/board_config";
$tail_file = $dir."/".$board_config[bc_idx]."_tail";

if($board_config[bc_tail_file] && file_exists($tail_file)){
?>
<br/>
<img src="<?=$tail_file?>">
<?
}
?>
[board_view.php 소스]

10번을 보면 비밀번호 체크후 저장된 세션을 체크해서 비밀버호 체크가 이루어지지 않았으면 경고 후 되돌립니다.

13번 부분은 댓글을 사용하는지 여부를 체크 한 후 댓글 목록과 댓글쓰기를 출력합니다.

댓글 저장부분입니다.

<?
// 1. 공통 인클루드 파일
include ("./head.php");

// 2. 게시판 코드 검사
$bc_code = $_POST[bc_code];
if($bc_code){
    // 3. 게시판 코드가 있으면 게시판 설정 불러오기
    $b_config_sql = "select * from ".$_cfg['config_table']." where bc_code = '".$bc_code."'";
    $board_config = sql_fetch($b_config_sql);
}else{
    alert("게시판 코드가 없습니다.");
}

// 4. 존재하는 게시판인지 확인
if(!$board_config[bc_idx]){
    alert("존재 하지 않는 게시판입니다.");
}

// 5. 게시판 권한 체크
if($_SESSION[user_level]){
    $u_level = $_SESSION[user_level];
}else{
    $u_level = 0;
}

if($u_level < $board_config[bc_comment_level]){
    alert("권한이 없습니다.");
}

// 6. 해당 글이 있는지체크
$b_idx = $_POST[b_idx];
$sql = "select * from ".$_cfg['board_table']." where bc_code = '".$bc_code."' and b_idx = '".$b_idx."'";
$data = sql_fetch($sql);
if(!$data[b_idx]){
    alert("존재 하지 않는 글입니다.");
}

// 7. 넘어온 변수 검사

if(trim($_POST[m_name]) == ""){
    alert("이름을 입력해 주세요.");
}

if(trim($_POST[co_contents]) == ""){
    alert("댓글내용을 입력해 주세요.");
}


// 8. 글저장
$sql = "insert into ".$_cfg['comment_table']." set b_idx = '".$b_idx."', m_id = '".$_SESSION[user_id]."', m_name = '".addslashes(htmlspecialchars($_POST[m_name]))."', co_contents = '".addslashes(htmlspecialchars($_POST[co_contents]))."', co_regdate = now()";
sql_query($sql);


// 9. 글보기 페이지로 보내기
alert("댓글이 저장 되었습니다.", "./board_view.php?bc_code=".$bc_code."&b_idx=".$b_idx."&page=".$_POST[page]);
?>
[board_comment_save.php 소스]

다운로드 파일입니다.
<?
// 1. 공통 인클루드
include "./inc/config.php";

// 2. 출력 헤더 만들기
$alert_header = "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>
<title></title>
</head>
";

// 3. 게시판 코드 검사
$bc_code = $_GET[bc_code];
if($bc_code){
    // 3. 게시판 코드가 있으면 게시판 설정 불러오기
    $b_config_sql = "select * from ".$_cfg['config_table']." where bc_code = '".$bc_code."'";
    $board_config = sql_fetch($b_config_sql);
}else{
    echo $alert_header;
    alert("게시판 코드가 없습니다.");
}

// 4. 존재하는 게시판인지 확인
if(!$board_config[bc_idx]){
    echo $alert_header;
    alert("존재 하지 않는 게시판입니다.");
}

// 5. 게시판 권한 체크
if($_SESSION[user_level]){
    $u_level = $_SESSION[user_level];
}else{
    $u_level = 0;
}

if($u_level < $board_config[bc_read_level]){
    echo $alert_header;
    alert("권한이 없습니다.", "./index.php");
}

// 6. 글정보 가져오기
$b_idx = $_GET[b_idx];
$sql = "select * from ".$_cfg['board_table']." where bc_code = '".$bc_code."' and b_idx = '".$b_idx."'";
$data = sql_fetch($sql);

// 7. 해당 글이 있는지 와 비밀글이면 비밀번호 입력여부 체크체크
if(!$data[b_idx]){
    echo $alert_header;
    alert("존재 하지 않는 글입니다.");
}

if($data[b_is_secret] && !$_SESSION["b_pass_".$b_idx] && $_SESSION[user_id] != $data[m_id] && $u_level != 9){
    echo $alert_header;
    alert("비밀번호를 입력하여 주세요.");
}

// 8. 파일이 등록되어 있는지 검사
if(!$data[b_filename]){
    echo $alert_header;
    alert("파일이 존재 하지 않습니다.");
}

// 9. 파일 이름과 실제 파일
$dir = "./data";
$file_path = $dir."/".$b_idx;
$original = $data[b_filename];

// 10.파일이 있으면
if (file_exists($file_path)) {

    // 11. 다운로드 헤더 만들기

    if(eregi("(MSIE 5.0|MSIE 5.1|MSIE 5.5|MSIE 6.0)", $HTTP_USER_AGENT))
    {
      if(strstr($HTTP_USER_AGENT, "MSIE 5.5"))
      {
        header("Content-Type: doesn/matter");
        header("Content-disposition: filename=$original");
        header("Content-Transfer-Encoding: binary");
        header("Pragma: no-cache");
        header("Expires: 0");
      }

      if(strstr($HTTP_USER_AGENT, "MSIE 5.0"))
      {
        Header("Content-type: file/unknown");
        header("Content-Disposition: attachment; filename=$original");
        Header("Content-Description: PHP3 Generated Data");
        header("Pragma: no-cache");
        header("Expires: 0");
      }

      if(strstr($HTTP_USER_AGENT, "MSIE 5.1"))
      {
        Header("Content-type: file/unknown");
        header("Content-Disposition: attachment; filename=$original");
        Header("Content-Description: PHP3 Generated Data");
        header("Pragma: no-cache");
        header("Expires: 0");
      }
     
      if(strstr($HTTP_USER_AGENT, "MSIE 6.0"))
      {
        Header("Content-type: application/x-msdownload");
        Header("Content-Length: ".(string)(filesize("$file_path")));
        Header("Content-Disposition: attachment; filename=$original");
        Header("Content-Transfer-Encoding: binary");
        Header("Pragma: no-cache");
        Header("Expires: 0");
       
      }


    } else {
      Header("Content-type: doesn/matter");  
      Header("Content-Length: ".(string)(filesize("$file_path")));
      Header("Content-Disposition: attachment; filename=$original");
      Header("Content-Description: PHP3 Generated Data");
      Header("Pragma: no-cache");
      Header("Expires: 0");
    }
    flush();

    // 12. 파일을 읽어 내보내기
    if (is_file($file_path)) {
        $fp = fopen($file_path, "rb");

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

} else {
    echo $alert_header;
    alert("파일이 존재 하지 않습니다.");
}
?>
[download.php 소스]

글보기 파일에서 업로드한 파일이 있으면 다운로드 파일로 링크가 됩니다.

파일을 다운로드 시킬때는 파일이 html 이 아니라 다운로드라는 부분을 보내게 됩니다.

이것을 헤더라고 하는데요 header() 함수를 이용해 파일의 헤더를 만듭니다.

헤더는 브라우저 버전마다 다 다른데요. 일반적으로 Content-type, 파일길이, 파일명, 출력방식(다운로드니 binary 등의 것들입니다.), 캐쉬여부, 등을 출력해 줍니다.

또 여기 사용된 flush() 함수는 php에서 만든 내용을 끝까지 기다리지 말고 바로 출력하란느 내용입니다.

파일의 크기가 클때는 다 출력이 되지않기 때문에 그때그때 파일을 읽어서 내보내는 즉시 출력해 보리는 것입니다.

간단하게 설명을 드렸습니다.

이쯤되면 각 함수들에 대해서는 php 매뉴얼을 통해서도 알아볼수 있어야 합니다.

질문은 댓글을 이용해 남겨주시면 되구요.

다음 시간에는 답글달기와 글삭제를 배우도록 하겠습니다.
반응형