게을러서 이제야 글을...
기존에 첨부 파일 하나를 추가할 수 있는 기능을 작성했는데, 이번에는 작성한 글을 수정하는 기능도 변경해야 한다.
<edit.php>
//기존 첨부파일 여부 체크
if(strlen($row['filename']) > 0) {
$path = "upload/".$row['filename'];
//Array 값으로 분리, [0]에는 "_"이전 값이, [1]에는 "_"이후 값이 들어있다.
$chk_name = explode("_", $row['filename']);
$old_file = $chk_name[sizeof($chk_name)-1];
}
상단에서 일단 첨부파일이 있는지 체크를 한다.
그리고, 본문에서 첨부파일이 있을 때는 보여주는 코드를 작성한다.
없다면 그냥 첨부할 수 있는 폼을 보여주면 된다. 여기서 헷갈리는 것이 바로 체크박스다.
첨부파일이 있을 경우 삭제를 하고 다시 첨부할 수 있도록 체크박스를 하나 만들었는데, 이것은 chk_delete 변수에 값이 들어있다면 체크가 되어 있다는 것을 말한다.
이 값을 체크해서 수정을 완료하면 된다.
<edit.php>
<?
//////////////기존 첨부파일 표시 및 파일 첨부하기////////////////////////////
echo "<table width=\"80%\">\n";
if(strlen($old_file) > 0)
{
//chk_delete에 값이 들어있다면 체크가 된 것이다.
echo "<tr><td width=\"120\" align=\"left\">파일 첨부 (1M 이하)
<input type=\"file\" name=\"uploadedfile\" size=\"30\">
<img src=\"paperclip-16x16.png\"><a href=\"$path\">$old_file</a>
<input type=\"checkbox\" name=\"chk_delete\" value=\"$row[filename]\">삭제 </td></tr>\n";
}
else
{
echo "<tr><td width=\"120\" align=\"center\">파일 첨부 (1M 이하)
<input type=\"file\" name=\"uploadedfile\" size=\"30\"></td></tr>\n";
}
echo "</table>\n";
//////////////파일 첨부하기////////////////////////////
?>
<edit_ok.php>
if($_FILES['uploadedfile']['name'] != "" ) {
if(!empty($_POST['chk_delete']) || !empty($_POST['old_file']))
unlink($row[filename]);
...
최종적으로 DB를 다루는 edit_ok.php 에서는 앞서 말한대로 chk_delete 변수에 값이 있다면 첨부파일을 삭제하라는 것이므로 unlink 함수를 이용해 삭제한다.
체크가 되어 있지 않아도 새롭게 업로드하는 파일이 있다면 기존 첨부파일은 자동으로 삭제를 하도록 했다.
나머지는 글을 작성하는 것과 거의 동일하다.
DB에 저장할 때 insert 대신 update를 쓴다는 것 외에는...
'PHP > 게시판 만들기' 카테고리의 다른 글
게시판 만들기 진행상황 (0) | 2009.01.15 |
---|---|
게시판 만들기 중간 소스 정리 (0) | 2008.12.08 |
여러 개 파일 첨부하기 (0) | 2008.11.30 |
파일 첨부하기 (0) | 2008.11.30 |
검색 기능 추가 (0) | 2008.11.22 |