네이버 스마트에디터에 업로드 기능 추가(PHP용)[2]

이전 글을 확인 하실분은 아래 링크를 활용하세요.

네이버 스마트에디터에 업로드 기능 추가(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개 입니다. 즉 파일 세개만 잘 분석해서 웹사이트에 적용한다면 스마트에디터에 업로드 기능을 추가할 수 있을겁니다.

다음글은 실행 모습을 보여드리겠습니다.

답글 남기기