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

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

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))
주소복사
채택됨
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 80,672 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. @멘션 알림 자동완성 + Ckeditor4 플러그인

    참여33 회 시작19.11.17 11:33 종료19.11.24 05:15

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

© SIRSOFT