게시판에 글쓰고, 이미지 파일 전송하여 DB에 저장하고, 게시물 볼때 게시물 내용과 이미지 파일 불러오는 예제입니다.
어느분이 물어보셔서 저장과 불러오기를 보여주기 위한 예제라 소스가 다소 엉성합니다~
개략적인 흐름만 참고하시고, 필요한 부분 덧붙여 사용하시면 될듯 합니다.
DB생성
- 게시판 글 내용 담을 테이블
CREATETABLE`inetag`.`test_bbs` (
`bbsNo` INT NOTNULLAUTO_INCREMENTPRIMARYKEY ,
`id` VARCHAR( 20)NOTNULL ,
`content` VARCHAR( 255)NOTNULL ,
`regdate` TIMESTAMP NOTNULLDEFAULT CURRENT_TIMESTAMP
) ENGINE=MYISAM ;
- 이미지 파일정보 담을 테이블
CREATETABLE`inetag`.`test_image` (
`fileNo` INT NOTNULLAUTO_INCREMENTPRIMARYKEY ,
`bbsNo` INT NOTNULL ,
`path` VARCHAR( 255)NOTNULL ,
`filename` VARCHAR( 50)NOTNULL
) ENGINE=MYISAM ;
소스
- form.php
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>게시물 작성 예제 폼</title> </head> <body> <form enctype="multipart/form-data" name="form" method="post" action="write.php"> <table> <tr> <td>아이디:</td> <td><input type="text" name="id" /></td> </tr> <tr> <td>내용:</td> <td><textarea name="content"></textarea></td> </tr> <tr> <td>이미지:</td> <td><input type="file" name="imageform" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="전송" /> </td> </tr> </table> </form> </body> </html>
- write.php
<? $id = $_POST['id']; $content = $_POST['content']; include "../include/db_connect.php"; $query = "insert into test_bbs (id,content) values('$id','$content')"; $db_inet->query($query); $bbsid = $db_inet->insert_id; //$path = $_SERVER['DOCUMENT_ROOT'].'/testBBS/'; $path = "/testBBS/"; $filename = date("YmdHis").".jpg"; move_uploaded_file($_FILES['imageform']['tmp_name'], $filename); $query = "insert into test_image (bbsNo,path,filename) values ($bbsid, '$path','$filename')"; $db_inet->query($query); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>게시물 작성 예제 폼</title> </head> <body> <table> <tr> <td>전송아이디:</td> <td><?=$id;?></td> </tr> <tr> <td>전송내용:</td> <td><?=$content;?></td> </tr> <tr> <td>전송이미지</td> <td><img src="<?=$path.$filename;?>" /></td> </tr> </table> <p><b>전송완료</b></p> <p><a href='list.php'>목록가기</a></p> </body> </html>
- list.php
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <? include "../include/db_connect.php"; $result = $db_inet->query("select * from test_bbs"); echo "<table border=1>"; while($row = $result->fetch_assoc()) { echo "<tr>"; echo "<td>".$row['bbsNo']."</td>"; echo "<td>".$row['id']."</td>"; echo "<td><a href='view.php?bbsno=".$row['bbsNo']."'>".$row['content']."</a></td>"; echo "<td>".$row['regdate']."</td>"; echo "</tr>"; } ?>
- view.php
<? $bbsno = $_GET['bbsno']; include "../include/db_connect.php"; $result = $db_inet->query("select * from test_bbs where bbsNo=".$bbsno); $row = $result->fetch_assoc(); $result = $db_inet->query("select * from test_image where bbsNo=".$bbsno); $row2 = $result->fetch_assoc(); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>게시물 보기</title> </head> <body> <table> <tr> <td>번호</td> <td><?=$row['bbsNo'];?></td> </tr> <tr> <td>아이디</td> <td><?=$row['id'];?></td> </tr> <tr> <td>내용</td> <td><?=$row['content'];?></td> </tr> <tr> <td>작성시간</td> <td><?=$row['regdate'];?></td> </tr> <tr> <td>이미지</td> <td> <? if(!empty($row2)) echo "<img src='".$row2['path'].$row2['filename']."' />"; else echo "이미지 없음"; ?> </td> </tr> </table> <p><b>전송완료</b></p> <p><a href='list.php'>목록가기</a></p> </body> </html>
정말 간략한 예제입니다^^ 디자인에는 전혀 신경쓰지 않았으니 흐름만 참고하세여~