| 제목 | fckeditor용 이미지 DB insert | ||
|---|---|---|---|
| 글쓴이 | 변종원(웅파) | 작성시각 | 2009/07/21 18:33:25 |
|
|
|||
|
fckeditor에서 이미지를 삽입하고(파일 업로드) 나서 DB에 이미지명을 넣어 관리를 해야하는데 글 자체가 입력되기전이라 어디에 속한지 알 수가 없죠. 원래 로직대로라면 글번호는 세션번호로 대체하고 fsckeditor 업로드 로직을 수정하여 DB에 파일명을 입력한후 세션번호를 글쓰는 창으로 반환을 해줘야 나중에 파일테이블에서 세션번호를 글번호로 업데이트 할 수 있겠죠. 이렇게 처리하자니 fckeditor도 건드려야하고 변수 넘겨주는 것도 그렇고 해서 이미지 DB insert 처리를 글내용을 insert 한후에 다음 함수를 호출하여 처리하도록 했습니다. (꽁수 ^^) 글내용중에서 img 태그를 뽑고 그중에서 fckeditor의 업로드폴더와 매칭되는 이미지명을 뽑아옵니다. 그리고 파일테이블에 insert. 최종적으로 글 테이블의 파일갯수 업데이트를 위해 파일갯수 리턴.
// 내용중에서 이미지명 추출후 DB 입력, 파일갯수 리턴. fckeditor용
// 글내용, 글번호, 리플인지, 원글인지
function strip_image_tags_fck($str, $no, $type)
{
$CI =& get_instance();
$file_table=ADMIN_ID."_files";
$table=ADMIN_ID."_board_".MENU_BOARD_NAME_EN;
preg_match_all("<img [^<>]*>", $str, $out, PREG_PATTERN_ORDER);
$strs = $out[0];
$cnt = count($strs);
for ($i=0;$i<$cnt;$i++) {
$arr = preg_replace("#img\s+.*?src\s*=\s*[\"']\s*\/data\/".ADMIN_ID."\/upload/\s*(.+?)[\"'].*?\/#", "\\1", $strs[$i]);
$data = array(
'module_id'=> MENU_PLUGIN_NO,
'module_name'=> $table,
'module_no'=>$no,
'module_type'=>$type,
'file_name'=>$arr,
'reg_date'=>date("Y-m-d H:i:s")
);
if ( count($arr) <= 25 ) {
$CI->db->insert($file_table, $data);
}
}
return $cnt;
}
|
|||
| 다음글 | Google SMTP로 메일 보내기. (1) | ||
| 이전글 | 한글출력 문제시 (3) | ||
| 없음 |