웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
중복파일 검사 후 (숫자)달기...
2006.04.20 17:41
제로보드 보면서.. 이것 저것 해보면서 공부하는 학생(?)입니다.
윈도 중복파일 생기면 filename(num).exe 생기듯이..;;
만들어 봤습니다.;
//이건 중복 체크해서 중복이면 파일명(숫자).확장자 로 만들어 주는..;;
function same_files_check($savedir,$files_name){ //$savedir : 경로 // $files_name : 파일이름
$same1_file_exist = file_exists($savedir."/".$files_name); //같은 파일이 있나 검사합니다.
if($same1_file_exist) { //같은 파일이 있으면
//pathinfo (PHP 4 >= 4.0.3, PHP 5)//
$path_parts=pathinfo($files_name); //pathinfo 이용해서
$upload_ckeck=$path_parts[extension]; //확장자만 변수에 저장
$temp_names=basename($files_name,".".$path_parts[extension]); //확장자와 확장자앞의 "."마침표 제거한 파일명을 변수에 저장
$file1_exist = $same1_file_exist; //$same1_file_exist <= 1을 $file1_exist <= 1 저장
$i=0; //while 돌릴때 쓸라구 만듬
while($file1_exist){ // 같은 파일이 없을때 가지 돌기..
$i++; //돌때마다 1씩 더하기
$file1 = $temp_names."(".$file1_exist.").".$upload_check; //더 한 값 적용
$file1_exist = file_exists($savedir."/".$file1); // 적용한거 또 비교 같은 파일 있나
if($file1_exist==1) $file1_exist=$file1_exist+$i; // 같은 파일 있으면 누적된 $i값이랑 $file1_exist값이랑 더 함.
}
}else{
$file1 = "$files_name"; //중복 파일이 없으면 원래 파일명을 $file1에 저장
}
return $file1; //중복파일 있나 없나 검사 끝난 파일이름 리턴
}
테클 ㄳ히 받겠습니다.
많은 테클 부탁드립니다.
수정해야 될 부분도..;; 좀 짧게 어캐 안되낭..;;
그럼 좋은 하루 되시고~ 항상 행복하시길~
[결과1]
abc/123.jpg 있는데..
123.jpg를 올리려고 하면 자동으로 123(1).jpg 로 파일명을 리턴합니다.
[결과2]
abc/123.jpg
abc/123(1).jpg
abc/123(2).jpg
abc/123(3).jpg
abc/123(4).jpg
abc/123(5).jpg
abc/123(6).jpg
이 있을때...123.jpg를 업로드 할 경우 123(7).jpg로 파일명을 리턴합니다.
[결과3]
abc/123.jpg
abc/123(1).jpg
abc/123(2).jpg
abc/123(3).jpg
abc/123(4).jpg
abc/123(5).jpg
abc/123(6).jpg
이 있을때 1234.jpg를 업로드 할 경우 1234.jpg 를 리턴함..-0-;;;
ㅋ.ㅋ
윈도 중복파일 생기면 filename(num).exe 생기듯이..;;
만들어 봤습니다.;
//이건 중복 체크해서 중복이면 파일명(숫자).확장자 로 만들어 주는..;;
function same_files_check($savedir,$files_name){ //$savedir : 경로 // $files_name : 파일이름
$same1_file_exist = file_exists($savedir."/".$files_name); //같은 파일이 있나 검사합니다.
if($same1_file_exist) { //같은 파일이 있으면
//pathinfo (PHP 4 >= 4.0.3, PHP 5)//
$path_parts=pathinfo($files_name); //pathinfo 이용해서
$upload_ckeck=$path_parts[extension]; //확장자만 변수에 저장
$temp_names=basename($files_name,".".$path_parts[extension]); //확장자와 확장자앞의 "."마침표 제거한 파일명을 변수에 저장
$file1_exist = $same1_file_exist; //$same1_file_exist <= 1을 $file1_exist <= 1 저장
$i=0; //while 돌릴때 쓸라구 만듬
while($file1_exist){ // 같은 파일이 없을때 가지 돌기..
$i++; //돌때마다 1씩 더하기
$file1 = $temp_names."(".$file1_exist.").".$upload_check; //더 한 값 적용
$file1_exist = file_exists($savedir."/".$file1); // 적용한거 또 비교 같은 파일 있나
if($file1_exist==1) $file1_exist=$file1_exist+$i; // 같은 파일 있으면 누적된 $i값이랑 $file1_exist값이랑 더 함.
}
}else{
$file1 = "$files_name"; //중복 파일이 없으면 원래 파일명을 $file1에 저장
}
return $file1; //중복파일 있나 없나 검사 끝난 파일이름 리턴
}
테클 ㄳ히 받겠습니다.
많은 테클 부탁드립니다.
수정해야 될 부분도..;; 좀 짧게 어캐 안되낭..;;
그럼 좋은 하루 되시고~ 항상 행복하시길~
[결과1]
abc/123.jpg 있는데..
123.jpg를 올리려고 하면 자동으로 123(1).jpg 로 파일명을 리턴합니다.
[결과2]
abc/123.jpg
abc/123(1).jpg
abc/123(2).jpg
abc/123(3).jpg
abc/123(4).jpg
abc/123(5).jpg
abc/123(6).jpg
이 있을때...123.jpg를 업로드 할 경우 123(7).jpg로 파일명을 리턴합니다.
[결과3]
abc/123.jpg
abc/123(1).jpg
abc/123(2).jpg
abc/123(3).jpg
abc/123(4).jpg
abc/123(5).jpg
abc/123(6).jpg
이 있을때 1234.jpg를 업로드 할 경우 1234.jpg 를 리턴함..-0-;;;
ㅋ.ㅋ
댓글 4
-
이태라
2006.04.21 08:01
-
한치근
2006.04.21 14:37
이태라 // 오~ 짧은걸루 갔다 써야지 ㅍ.ㅍ
왠지 살 빠진 느낌이랄까? ㅍ.ㅍ
건강하게 삽시다. ㅋ.ㅋ -
이태라
2006.04.27 09:31
지금 다시 보니까 필요없는 부분이 있었네요. 3줄이 빠집니다..;; 그래서 빈줄까지 11줄..
솔직히 $dir 변수를 체크해서 끝에 슬래쉬가 없으면 붙여주는게 있으면 좋겠죠.
예를들면 지금 테스트없이 그냥 적어보는건데 if ($dir{strlen($dir)-1}!='/') $dir.= '/';
그래서 while (file_exists($dir . '/' . $filename)) => while (file_exists($dir . $filename)) 로 고치면
약간의 에러검사도 되고 코드도 깔끔해질듯...
function check_dup_filename($filename, $dir='.')
{
$num = 1;
$extension = substr($filename, strrpos($filename, '.'));
$basename = basename($filename, $extension);
while (file_exists($dir . '/' . $filename))
$filename = $basename . '(' . $num++ . ')' . $extension;
return $filename;
} -
짱돌
2007.01.02 18:17
하하 좋네요 감사합니다..
제목 | 글쓴이 | 날짜 |
---|---|---|
통합 검색엔진 소스입니다. [5] | 철혈단 | 2003.02.19 |
폰트 크기를 방문자가 자유자재로 바꾸도록.. | 깜보 | 2003.02.19 |
개판 오분전 select menu......... [10] | 미친개 | 2003.02.18 |
[수정 및 추가 설명] 음악 듣기 소스 [4] | 당근당근 | 2003.02.17 |
페이지 로딩중 효과 [7] | 깜보 | 2003.02.16 |
[수정판] 갤러리 이미지 드레그 이동 가능한 필터 사용 스르륵 버젼 ^^ [10] | 모라미 | 2003.02.15 |
요청해오신 레이어 무조건 중앙에 열리기 와 클릭하는 곳에 열리기 두가지 소스입니다. [4] | 모라미 | 2003.02.25 |
레이어를 이용한 초간단 갤러리를 만들어봅시다. [6] | 모라미 | 2003.02.15 |
흐르는 내용 강좌 [4] | 라엘 | 2003.02.10 |
[허뎝이즈]간단한 테트리스 만들어 보기^_^[허뎝이 수정했음돠] [11] | 허졉이즈 | 2003.02.06 |
링크된 텍스트 오버시 위로 스크롤..예제 확인 [2] | ▩윤미 | 2003.02.06 |
링크된 텍스트 클릭지 위로 스크롤되는 예제확인 [1] | ▩윤미 | 2003.02.06 |
미디 랜덤으로 듣기 완벽해결! [4] | K.샘 | 2003.02.05 |
음악 듣기 소스 | 당근당근 | 2003.02.04 |
최상위로 만들기 소스 [13] | 앳플군 | 2003.02.04 |
KBS VOD 최상위로 만들기 소스 (필요 부분만 수정) [3] | kimbilly | 2003.02.02 |
바탕화면에 바로가기 아이콘을 만드시겠습니까? [소스분석용] [12] | RedEye | 2003.02.02 |
한페이지에서 여러개의 크롬리스 창 띄우기..(ByKlein Chromeless Window) [3] | 아린~★ | 2003.01.29 |
주소 보여주기 시를 때 제가 자주 쓰는 방법 이건 조회수 빵이다 ㅡ0ㅡ; [21] | ☆좀비파우더™ | 2003.01.28 |
로그인과 로그아웃을 체크하는 방법입니다. [3] | 이영호 | 2003.01.24 |
같은 기능인데 디렉토리 변수만 뒤로 넘기고 기본 값을 설정해보았습니다.. ^^;
function check_dup_filename($filename, $dir='.')
{
$num = 0;
$extension = substr($filename, strrpos($filename, '.'));
$basename = basename($filename, $extension);
while (file_exists($dir . '/' . $filename)) {
if (++$num) {
$filename = $basename . '(' . $num . ')' . $extension;
}
}
return $filename;
}