썸네일 파일명 생성시 중복 처리 질문드립니다

썸네일 파일명 생성시 중복 처리 질문드립니다

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

썸네일 파일명 생성시 중복 처리 질문드립니다

본문

    
public static function makeThumb($src_path, $thumb_dir, $w, $h, $options=array()){
        $temp  = BFiledir::parseFilename($src_path);
        $fname = $temp["name"];
        $ext   = $temp["extension"];
        //원본파일이 없으면
        if($fname!="" && is_file($src_path)){
            //애니메이션 GIF이면 원본그대로
            if(BImageutil::isAnimatedGif($src_path) && $options['is_anigif_thumb']==false){
                list($t_w, $t_h) = BImageutil::rateLimit($src_path, $w, $h);
                $filename = $fname.'.'.$ext;
                $arr = array(
                    $fname.'.'.$ext,
                    $t_w,
                    $t_h,
                    'filename'    => $filename,
                    'width'        => $t_w,
                    'height'    => $t_h
                );
                
            //애니메이션이 아니면
            }else{
                if($options['keep_filename']){
                    $filename = $fname.".".$ext;
                }else{
                    $str= "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //중복방지문자
                    $temp= str_shuffle($str); 
                    $ret = substr($temp, 0, 1); 
                    $filename = $fname."".$ret.".".$ext;                
                }else{
                    $temp1 = "l";
                    $filename = $fname."".$temp1.".".$ext;        
                }
                $thumb_path = $thumb_dir."/".$filename;
                
                //썸네일이 존재하지 않으면
                if(!is_file($thumb_path)){
                    
                    BFiledir::autoMkDir($thumb_dir, 0755);
            
                    $t = new BThumbnail($src_path, $thumb_path, $w, $h, $options);
                    $t->save();
                    list($t_w, $t_h) = $t->getThumbSize();
                
                //썸네일이 존재하면
                }else{
                    list($t_w, $t_h) = BImageutil::getImageSize($thumb_path);
                }
                $arr = array(
                    $filename,
                    $t_w,
                    $t_h,
                    "filename" => $filename,
                    "width" => $t_w,
                    "height" => $t_h
                );
            }
        }
        return $arr;
    }
}

 

이렇게 했는데 썸네일파일명이 중복처리를 하고 싶습니다

 

일단 셔플로 돌려서 하나씩 짤라서 넣는방법을 했지만 아닌거 같아서 잘 알려주시분 계신가요?

 

예)

썸네일 파일명이 apple.jpg 이라고 저장이되고 만약에 같은 파일명이 생기다면 뒷에 미리정해놓은 숫자 또는 영어를 마지막에 하나 더 붙혀서 appleA.jpg 이런식으로 처리하고 싶습니다 

 

 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 1

채택됨

eyekiss님의 답변

아래 소스를 참조해서 수정해보세요..

$ret=0;
do {
  $ret++;
  $filename = $fname."".$ret.".".$ext;
  $thumb_path = $thumb_dir."/".$filename;
} while(is_file($thumb_path))
주소복사
채택됨
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 76,619 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT