이전 글을 확인 하실분은 아래 링크를 활용하세요.
네이버 스마트에디터에 업로드 기능 추가(PHP용)[1]
네이버 스마트에디터에 업로드 기능 추가(PHP용)[2]
네이버 스마트에디터에 업로드 기능 추가(PHP용)[3]
앞서 서술한 소스를 잠깐 설명하자면.
스마트에디터를 표시하고 밑에 리스트박스와 버튼들을 만듭니다. 그리고 자바스크립 소스를 잘 살펴 보시면 리스트 박스에서 선택된 파일을 이미지 또는 하이퍼링크 형식으로 스마트에디터에 추가하는겁니다. 그리고 아이프레임을 통해서 파일을 업로드하고, 삭제 기능도 하게 됩니다.
이 글을 보시는 분들은 대부분 게시판 정도는 쉽게 만드실 분들이니 글쓰기에 관한건 이야기 하지 않겠습니다.
중요한것은 생성된 uuid를 이용하여 글과 파일이 연결된다는 겁니다.
다음은 업로드 소스입니다.
file_upload.php
<? $save_dir = "[파일이 업로드될 유닉스 절대경로]"; $file_temp = $_FILES['txtFile']['tmp_name']; $file_name = $_FILES['txtFile']['name']; $file_size = $_FILES['txtFile']['size']; $current_file=$file_name; $file_name=substr($current_file,0,strrpos($current_file,".")); $file_ex=strrchr($current_file,"."); //확장자 검사 if(!strcmp($file_ex,".html") || !strcmp($file_ex,".htm") || !strcmp($file_ex,".php") || !strcmp($file_ex,".phtml") || !strcmp($file_ex,".inc") || !strcmp($file_ex,".txt") || !strcmp($file_ex,".asp")) show_error_java("허용된 파일이 아닙니다."); //중복파일 검사 - 중복된 파일이 있을경우 인덱스를 붙인다. $fn_t=$file_name; $fileindex=0; while(file_exists($save_dir . "/" . $fn_t . $file_ex)) { $fn_t=$file_name . "(" . $fileindex . ")"; $fileindex++; }; $realfile = $fn_t. $file_ex; //실제파일명 $dest = $save_dir."/".$realfile; $srcf = $file_temp; if(!move_uploaded_file($srcf,$dest)) show_error_java("업로드 실패"); $sql="insert into t_file(f_articleid, f_name) values('$articleid', '$realfile')"; mysql_query($sql); ?> <script language="javascript"> var item = document.createElement("option"); item.text="<?=$realfile?>"; item.value="<?=$realfile?>"; parent.frmAdd.cmbUpload.add(item); parent.divUpload.style.visibility="hidden"; alert("새로운 파일이 저장되었습니다."); </script>
이 소스를 설명하자면 앞글에 있는 소스에서 파일 업로드가 되면 파일을 [절대경로]에 업로드하고, DB에 파일에 대한 정보를 저장합니다. 그리고 파일리스트박스에 파일을 추가합니다. 다시한번 말하지만 iframe을 사용합니다. 소스 잘 따라가세요. 그냥 붙여 넣기 하면 잘 안될겁니다.
그리고 삭제하는 부분 소스입니다.
file_del.php
<? include "../lib.php"; $db=dbconn(); $save_dir = $appitem_path."data/"; $sql="select f_name from t_file where f_no=$no"; $filename = mysql_result(mysql_query($sql), 0, 0); @unlink($save_dir.$filename); $sql="delete from t_file where f_no=$no"; mysql_query($sql); ?>
여기가 끝입니다.
앞선 네이버 스마트에디터에 업로드 기능 추가(PHP용)[1] 글과 이 글을 합쳐봐야 파일 3개 입니다. 즉 파일 세개만 잘 분석해서 웹사이트에 적용한다면 스마트에디터에 업로드 기능을 추가할 수 있을겁니다.
다음글은 실행 모습을 보여드리겠습니다.