웹마스터 팁
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
하하 좋네요 감사합니다..
제목 | 글쓴이 | 날짜 |
---|---|---|
플래시 칼라피커 두번째 버전 [1] | 행복한고니 | 2005.03.16 |
플래쉬 갤러리 비슷한 자바스크립 갤러리 [13] | monozzang | 2005.04.04 |
풍선도움말 스크립트 [3] | 행복한고니 | 2005.04.11 |
타켓으로 페이지 이동하는 스크립트 [2] | 로크 | 2005.04.16 |
팝업창을 내용에 맞게 크기 자동조정하기 [2] | 김경수 | 2005.04.23 |
상태 표시줄 감지 (URL 가리고 내용 표시) 업그레이드 소스 [2] | ArⓒH | 2005.05.30 |
링크 점선 처리 onfocus=blur() [5] | woosh | 2005.06.06 |
마우스 오른쪽버튼 금지시키기스크립트 [5] | 박시현 | 2005.06.26 |
파일 업로드 버튼 이미지로 사용하기 [1] | 행복한고니 | 2005.06.29 |
SP2 팝업차단 무시하고 팝업띠우기?! [8] | 오길호 | 2005.07.23 |
미디어 플레이어? 난 곰플레이어야! [9] | 송재영 | 2005.07.24 |
자바스크립트 음악목록 랜덤 재생하기 | 만능천사 | 2005.08.14 |
Rain# 머문시간 나타내기 [상태창] | Rain | 2005.08.14 |
뉴스티커 [4] | beMax | 2005.08.26 |
배경색 랜덤으로 바꾸는 스크립트 [1] | ColonD | 2005.10.15 |
클릭으로 배경색 바꾸는 스크립트(수정) [1] | ColonD | 2005.10.16 |
2005/10/16 21:15 pm 형식으로 출력되는 시계 [5] | 웹-하루 | 2005.10.18 |
임의로 전체에서 몇개의 배너만 출력하기(오류 수정 ㅜ,.ㅜ) | ColonD | 2005.10.20 |
주소창에 경로감추기 [5] | ☆쭈야☆ | 2005.10.29 |
홈페이지 만드실때 방문자의 해상도가 걱정 되신다면 [5] | 한용 | 2005.11.11 |
같은 기능인데 디렉토리 변수만 뒤로 넘기고 기본 값을 설정해보았습니다.. ^^;
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;
}