TIP게시판

제목 fckeditor용 이미지 DB insert
글쓴이 변종원(웅파) 작성시각 2009/07/21 18:33:25
댓글 : 0 추천 : 0 스크랩 : 0 조회수 : 17890   RSS

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)

댓글

없음