에디터로 올린 이미지 삭제하는 코드 (썸네일도 삭제)

· 2017-11-11 (토) 21:10:32 · 12011 · 14

현재 그누보드는 에디터로 첨부한 이미지는 글 삭제시에도 함께 삭제되지 않고 서버에 남아있습니다.

아래 코드를 적용하시면 에디터로 첨부한 이미지가 있는 글을 삭제할 경우 해당 이미지도 삭제하게 됩니다.

 

/lib/common.lib.php 에서 기존 

 

// 에디터 썸네일 삭제
function delete_editor_thumbnail($contents)
 

함수 내용을 아래와 같이 변경한다.

 

// 에디터 썸네일 삭제
function delete_editor_thumbnail($contents)
{
    if(!$contents)
        return;

    // $contents 중 img 태그 추출
    $matchs = get_editor_image($contents, false);

    if(!$matchs)
        return;

    for($i=0; $i<count($matchs[1]); $i++) {
        // 이미지 path 구함
        $imgurl = @parse_url($matchs[1][$i]);


        if(strpos($imgurl['path'], "/data/") != 0) {
            $data_path = preg_replace("/^\/.*\/data/", "/data", $imgurl['path']);
        } else {
            $data_path = $imgurl['path'];
        }

        $is_destfile = false;
        if(preg_match('/(gif|jpe?g|bmp|png)$/i', strtolower(end(explode('.', $data_path))))){

            $destfile = ( ! preg_match('/\w+\/\.\.\//', $data_path) ) ? G5_PATH.$data_path : '';

            if($destfile && preg_match('/\/data\/editor\/[A-Za-z0-9_]{1,20}\//', $destfile) && is_file($destfile)) {
                $is_destfile = true;
            }
        }
        
        if($is_destfile) {
            //원본파일 삭제
            @chmod($destfile, G5_FILE_PERMISSION);
            @unlink($destfile);
            
            //썸네일파일 삭제
            $files = glob(dirname($destfile).'/thumb-'.preg_replace("/\.[^\.]+$/i", "", basename($imgurl['path'])).'*');
            //return $files;
            if (is_array($files)) {
                foreach($files as $filename)
                    unlink($filename);
            }
            
        }


    }
}

|

댓글 14개

2017-11-12 (일) 08:04:05
감사합니다...꾸벅
좋은 팁 감사합니다.
글 작성하면서 에디터를 통해 업로드한 이미지를 다른 게시글에도 사용한 경우
그것을 체크해서 제외하는 로직이 추가되면 좋겠다는 생각을 해봤습니다.
2017-11-15 (수) 15:56:03
찾던 팁이네요. 감사합니다.
감사합니다
에디터 올린 파일 삭제
2018-03-16 (금) 11:53:57
에디터 이미지 삭제
에디터 이미지 삭제
좋은글 감사합니다.
2018-10-25 (목) 15:38:32
좋은 자료 감사합니다.
2019-07-09 (화) 02:12:08
게시물 등록후, DEL 버튼 눌러서 이미지를 본문에서 삭제한 경우에도, 서버에서 삭제되는지요?
2020-09-18 (금) 19:35:22
에디터 상에서 del키를 눌러 삭제하는 것을 말씀하시는 것 맞나요?
예상컨데 그 상황에서는 지워지지 않을 것 같습니다.
다만 해당 게시물 삭제시 에디터에서 del했던 이미지(게시글에서는 보이지 않지만 서버에 남아있는)도 같이 삭제될 것으로 보입니다.
꿀팁 감사합니다.
오 감사합니다
삭제시 잘 작동이 됩니다.
그러나 글 이동시에도 삭제가 되어버리네요 ㅠㅠ;
글 이동시에는 삭제가 안되었으면 좋겠습니다
감사합니다. 잘 사용하겠습니다. DawnDew님 말씀대로 게시물을 다른 게시판으로 이동시켜도 게시물에 업로드한 이미지가 삭제되어 버리는 듯 합니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
17-11-30 조회 5,735
17-11-29 조회 7,537
17-11-29 조회 7,093
17-11-29 조회 1.1만
17-11-27 조회 5,893
17-11-23 조회 9,029
17-11-23 조회 5,163
17-11-23 조회 5,374
17-11-21 조회 2만
17-11-20 조회 9,832
17-11-17 조회 6,459
17-11-16 조회 5,853
17-11-15 조회 7,051
17-11-15 조회 6,069
17-11-14 조회 7,103
17-11-14 조회 1만
17-11-14 조회 5,617
17-11-14 조회 6,781
17-11-13 조회 6,595
17-11-13 조회 6,294
17-11-12 조회 7,512
17-11-11 조회 1.2만
17-11-11 조회 8,258
17-11-11 조회 8,570
17-11-11 조회 7,835
17-11-11 조회 1.2만
17-11-10 조회 5,589
17-11-09 조회 1.1만
17-11-07 조회 7,255
17-11-06 조회 6,628