PHP] 게시판 글쓰기와 이미지 파일 DB 저장 및 불러오기 예제
- write.php
- list.php
- view.php
정말 간략한 예제입니다^^ 디자인에는 전혀 신경쓰지 않았으니 흐름만 참고하세여~
게시판에 글쓰고, 이미지 파일 전송하여 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>
정말 간략한 예제입니다^^ 디자인에는 전혀 신경쓰지 않았으니 흐름만 참고하세여~