[기능] 게시글 삭제시 에디터로 올린 이미지 삭제 > 정보공유

본문 바로가기

정보공유

일반글
그누보드팁

[기능] 게시글 삭제시 에디터로 올린 이미지 삭제

페이지 정보

게시물QR코드

본문

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

에디터로 첨부한 이미지가 계속 서버에 남아있게되면 서버의 필요없는 용량을 사용하는 것과 같기 때문에

게시글 삭제시 에디터로 첨부한 이미지도 삭제하도록 되어야 서버의 용량을 줄일 수 있습니다.

에디터로 첨부한 이미지를 삭제하는 방법은 게시글 삭제시 사용되는 함수를 수정하여 삭제하도록 처리 하면되는데

해당 함수는 www/lib/common.lib.php 파일의 delete_editor_thumbnail() 함수입니다.

해당 함수를 아래와 같이 수정하면 에디터로 첨부한 이미지도 삭제되겠습니다.

/* www/lib/common.lib.php */


// 에디터 썸네일 삭제

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);

            }

        }

    }

}

댓글목록

등록된 댓글이 없습니다.

  • Addr.부산광역시 부산진구 중앙대로 666번길 50, 더샵센트럴스타 CEO. 이경애 Email. gnuwiz@naver.com
  • BR. 625-68-00172 TRC. 2019-부산해운대-1186 TEL. 0507-1382-2790
Copyright © 2017 ~ 그누위즈. All rights reserved.