웹마스터 팁
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
하하 좋네요 감사합니다..
제목 | 글쓴이 | 날짜 |
---|---|---|
mysql 안쓰는 간단한 게시판. [20] | 제로저아 | 2007.07.15 |
주민등록번호 검사기 [7] | 이진혁 | 2007.05.18 |
PHP스터디시리즈_php프로그램의 기초_연산자1 [1] | 에아 | 2007.04.28 |
PHP스터디시리즈_php프로그램 기초1 [6] | 에아 | 2007.04.09 |
PHP스터디시리즈_APM과 PHP의시작 [1] | 에아 | 2007.04.09 |
아무이유없이 만든 파일 메모장-ㅠ-;; [7] | 한태종 | 2007.02.25 |
다운로드 이어 받기 및 전송속도 제한 구현 [1] | 박원형 | 2006.12.11 |
sajax.php 소스 코드 분석 (자세한 한글 주석) | 유창화 | 2006.11.28 |
간단하게 만들어본 프레임워크 [2] | 유창화 | 2006.11.27 |
[PHP 동영상강의] 48. 엑셀파일 db에 넣기, 동적 select 구현 [8] | 서기 | 2006.10.27 |
[PHP 동영상강의] 47. phpmyadmin 최신버젼 설치하기 [3] | 서기 | 2006.10.27 |
네이버 메인페지 플래시광고처럼 들갈때마다 바뀌게 하기. [3] | 좋은남자 | 2006.08.30 |
[팁] 웹언어 개발자를 위한 고객 미디어플레이어 에러해결법 | 배광한 | 2006.07.24 |
PHP로 PDF만들기 1 | 행복한고니 | 2006.06.17 |
GD2를 이용한 간단한 이미지버튼 만들기... | 마땅해 | 2006.06.13 |
50줄로 만드는 웹메모 PHP 소스입니다. (웹사이트 포스트잇) [3] | 김성대 | 2006.05.17 |
중복파일 검사 후 (숫자)달기... [4] | 한치근 | 2006.04.20 |
올블로그 명예의 전당글 가져오기 (캐쉬기능추가) [2] | 유창화 | 2006.04.17 |
올블로그(http://www.allblog.net/Home/) 명예의 전당글 가져오기 [2] | 유창화 | 2006.04.17 |
네이버 openapi 사용하여 쇼핑검색 만들기 [3] | 유창화 | 2006.04.13 |
같은 기능인데 디렉토리 변수만 뒤로 넘기고 기본 값을 설정해보았습니다.. ^^;
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;
}