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

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

QA

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

본문

    
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

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


$ret=0;
do {
  $ret++;
  $filename = $fname."".$ret.".".$ext;
  $thumb_path = $thumb_dir."/".$filename;
} while(is_file($thumb_path))
답변을 작성하시기 전에 로그인 해주세요.
전체 123,309 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT