제로보드 관련된 유용한 정보를 공유하는 곳입니다.
  • 웹미니 한줄 전광판 영역 입니다.
글 수 98
출처 :  
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=on&ss=on&sc=off&keyword=이름&select_arrange=headnum&desc=asc&no=6525---------------------------------------------------------------

일단 기본적으로 화일의 중복을 최대한 막기위해 회원일 경우 화일이름앞에 글쓴이의 아이디가 들어가도록 하였고, 비회원일 경우 0~999 까지의 숫자가 랜덤하게 들어가도록 하였습니다.
비회원 몇십명이 한 게시판에서 완전히 동일한 시간에 글을 작성하여도 파일이름이 중복되는 것을 막기 위함입니다..

--------------------------------------------------------------

수정할 내용은 다음과 같습니다..

write_ok.php 에서 아래 부분을 찾아서 밑에 글을 추가해 주시고,,

/***************************************************************************
* 업로드가 있을때
**************************************************************************/
        if($HTTP_POST_FILES[file1]) {
                $file1 = $HTTP_POST_FILES[file1][tmp_name];
                $file1_name = $HTTP_POST_FILES[file1][name];
                $file1_size = $HTTP_POST_FILES[file1][size];
                $file1_type = $HTTP_POST_FILES[file1][type];
        }
        if($HTTP_POST_FILES[file2]) {
                $file2 = $HTTP_POST_FILES[file2][tmp_name];
                $file2_name = $HTTP_POST_FILES[file2][name];
                $file2_size = $HTTP_POST_FILES[file2][size];
                $file2_type = $HTTP_POST_FILES[file2][type];
        }

------------ 윗 글 아래에 다음을 추가

//추가 한글그림화일 이름 변경...

if($member[no]!=0) {
      $user_no=$member[no];
      $user_id_c=mysql_fetch_array(mysql_query("select user_id from $member_table where no='$user_no'"));
      $user_id_r=$user_id_c[0];
                  }
    else {
      srand(time());  // 중복 방지를 위한 램덤출력.
      $ran_c = (rand()%999);  //0~999 숫자중 랜덤 출력
      $user_id_r=$ran_c;
         }

-----------여기까지...-------

같은 wriite_ok.php 파일에서 내려가다 보면

$file1=eregi_replace("\\","\",$file1);
$s_file_name1=str_replace(" ","_",$s_file_name1);
$s_file_name1=str_replace("-","_",$s_file_name1);

// 디렉토리를 검사함
if(!is_dir("data/".$id)) {
@mkdir("data/".$id,0777);
@chmod("data/".$id,0706);
}

이 나오는데 이글 바로 밑에 다음을 붙혀 넣으시면 됩니다..


// 한글이름인 그림화일인 경우 날짜로 화일명 변환

     preg_match('/.([^.]+)$/', $s_file_name1, $match1);
      $gfile_name1_type=$match1[1];

      if((eregi("jpg",$gfile_name1_type))||(eregi("gif",$gfile_name1_type))||(eregi("bmp",$gfile_name1_type))||(eregi("png",$gfile_name1_type))) {

      if(eregi("jpg",$gfile_name1_type)) $temp_c1="jpg";
       elseif(eregi("gif",$gfile_name1_type)) $temp_c1="gif";
       elseif(eregi("bmp",$gfile_name1_type)) $temp_c1="bmp";
       else $temp_c1="png";

      if(eregi("'",$s_file_name1)) {
        $temp_name1=$user_id_r."_".time()."_01";
        $s_file_name1 = "$temp_name1.$temp_c1";
         }

      else {
     for($i2=0;$i2<strlen($s_file_name1);$i2++)
     {
       if(ord($s_file_name1[$i2])>0x80)
       {
        $temp_name1=$user_id_r."_".time()."_01";
        $s_file_name1 = "$temp_name1.$temp_c1";
        break;
        }
     }
                 }
             }


또, 조금 아래에...

$file2=eregi_replace("\\","\",$file2);
$s_file_name2=str_replace(" ","_",$s_file_name2);
$s_file_name2=str_replace("-","_",$s_file_name2);

// 디렉토리를 검사함
if(!is_dir("data/".$id)) {
mkdir("data/".$id,0777);
@chmod("data/".$id,0706);
}

이 나오는데.. 그 바로 아래에... 다음을 붙혀 넣으시면 됩니다.


// 한글이름인 그림화일인 경우 날짜로 화일명 변환

     preg_match('/.([^.]+)$/', $s_file_name2, $match2);
      $gfile_name2_type=$match2[1];

      if((eregi("jpg",$gfile_name2_type))||(eregi("gif",$gfile_name2_type))||(eregi("bmp",$gfile_name2_type))||(eregi("png",$gfile_name2_type))) {

      if(eregi("jpg",$gfile_name2_type)) $temp_c2="jpg";
       elseif(eregi("gif",$gfile_name2_type)) $temp_c2="gif";
       elseif(eregi("bmp",$gfile_name2_type)) $temp_c2="bmp";
       else $temp_c2="png";

     if(eregi("'",$s_file_name2)) {
        $temp_name2=$user_id_r."_".time()."_02";
        $s_file_name2 = "$temp_name2.$temp_c2";
         }

        else {

     for($i2=0;$i2<strlen($s_file_name2);$i2++)
     {
       if(ord($s_file_name2[$i2])>0x80)
       {
        $temp_name2=$user_id_r."_".time()."_02";
        $s_file_name2 = "$temp_name2.$temp_c2";
        break;
        }
     }
                 }
             }


여기까지....------------------------------------



또한,, 한글파일이름이던, 영문 파일이름이던 모든 그림파일을 모두 숫자 형식으로 변경하고 싶으시면

위의 추가 팁에서 아래처럼 몇줄을 삭제하시면 됩니다.. file_name2 부분도 마찬가지로 수정..


// 한글이름인 그림화일인 경우 날짜로 화일명 변환

    preg_match('/.([^.]+)$/', $s_file_name1, $match1);
      $gfile_name1_type=$match1[1];

      if((eregi("jpg",$gfile_name1_type))||(eregi("gif",$gfile_name1_type))||(eregi("bmp",$gfile_name1_type))||(eregi("png",$gfile_name1_type))) {

      if(eregi("jpg",$gfile_name1_type)) $temp_c1="jpg";
       elseif(eregi("gif",$gfile_name1_type)) $temp_c1="gif";
       elseif(eregi("bmp",$gfile_name1_type)) $temp_c1="bmp";
       else $temp_c1="png";

//      if(eregi("'",$s_file_name1)) {
//        $temp_name1=$user_id_r."_".time()."_01";
//        $s_file_name1 = "$temp_name1.$temp_c1";
//         }

//      else {
//     for($i2=0;$i2<strlen($s_file_name1);$i2++)
//     {
//       if(ord($s_file_name1[$i2])>0x80)
//       {
        $temp_name1=$user_id_r."_".time()."_01";
        $s_file_name1 = "$temp_name1.$temp_c1";
//        break;
//        }
//     }
//                 }
             }


--------------------------------------------
또, 날짜표시를 리눅스형식이 아닌 달력형식으로 변경을 원하시면...
위의 글에서 아래 내용을 찾아서 변경해주시면 됩니다..물론 file_name2도 마찬가지 형식으로 변환해야겠죠..

$temp_name1=$user_id."_".time()."_01";   -> 이부분을 아래와 같이 변경...

$temp_name1=$user_id."_".date("Ymd_His")."_01";

초단위까지 표시하지 않으면,, 파일이름이 중복될 수가 있어서.....

-------------------------------------------
또 마지막으로... 화일이름 앞에 본인의 사이트 이름을 남기고 싶으신 분들은.

$temp_name1=$user_id."_".time()."_01";   -> 이부분을 아래와 같이 변경...

$temp_name1="site_name_".$user_id."_".time()."_01";

한글 파일이름을 변경해 주는 기능인데.. 사이트 이름을 한글로 넣으시는 분들은 없으시겠죠..^^;;;
노파심에 한가지 더... 사이트 이름에  "http://"  "/"  ""  "빈칸"  등의 특수문자는 빼고 넣으셔야 합니다.-.-;;;

-------------------------------------------


여기 까지 입니다..

제가 초보라.. 손 가는데로 수정을 하였습니다.. 각종 테스트는 모두 해보았습니다만,,.좀더 간략화된 구문이나, 문제점을 아시는 분의 조언 부탁드립니다...  그럼..

테스트를 마친 파일이름과 그 결과는 다음과 같습니다..
abc abc.jpg -> abc_abc.jpg
abc 한글_01.jpg -> user_id_날짜_01 (그림1에 올릴경우)
한글.abc.한글.jpg -> user_id_날짜_02 (그림2에 올릴경우)
abc.abc_abc.jpg -> 변화없음
한글_abc.jpg -> user_id_날짜_01 (그림1에 올릴경우)
한글.zip -> 변화없음
abc'abc.jpg -> user_id_날짜_01 (그림1에 올릴경우)
한글.jpg.zip -> 변화없음

profile 글쓴이 빽짱구

단점이 없는 사람은 장점도 거의 없다 - 에이브러햄 링컨

엮인글 :
https://web.webmini.net/zb4/17430/208/trackback
소중한 댓글 부탁드립니다.
추천수 10단위당 메달이 1개씩 노출되고, 추천수에 따라 배경색이 변하며, 일정수의 추천수를 받을시 BEST 아이콘이 붙게됩니다.
추천수에 따른 배경색 보기 본문으로 바로가기
  • 추천수 50개이상
  • 추천수 30개이상
  • 추천수 20개이상
  • 추천수 10개이상
  • 추천수 3개이상
닫기

댓글 '1'

profile
title: [ani]깜빡이는 표정빽짱구 (17431)

2005.03.17 02:31:39

작성자
저도 적용했는데 참 좋습니다. 한글로 된 파일을 올릴시 자동으로 영문으로 바꿔줍니다. 모두들 적용해보세요.
List of Articles
번호 제목 글쓴이 날짜 추천 수 조회 수sort
98 hit best of best 쪽지창을 메신저처럼 하기 file [4] title: [ani]깜빡이는 표정빽짱구 2006-11-16 50 17805
97 hit best of best 제로보드 pl8 보안 취약점 패치하세요 [2] title: [ani]깜빡이는 표정빽짱구 2006-06-17 63 10263
96 best of best 제로보드 서버이전 방법 title: [ani]깜빡이는 표정빽짱구 2004-07-12 25 8845
95 best of best 자동글 등록방지하기(광고글) file [1] title: [ani]깜빡이는 표정빽짱구 2006-09-16 35 7588
94 best of best 최근게시물에 카테고리 뽑아오기 [1] title: [ani]깜빡이는 표정빽짱구 2006-11-15 42 7468
93 게시판타이틀메뉴 자동 생성 + 카테고리--->이미지로 바꿀수 있음. title: [ani]깜빡이는 표정빽짱구 2006-06-22 15 7087
92 best of best 글읽기 권한 없을때 로그인 페이지만드는 방법 [1] title: [ani]깜빡이는 표정빽짱구 2006-10-23 38 6888
91 best of best 최근게시물에 new 아이콘 달기 title: [ani]깜빡이는 표정빽짱구 2006-11-15 46 6823
90 best of best 로그아웃시 원하는 페이지로 이동 시키기 title: [ani]깜빡이는 표정빽짱구 2006-10-24 35 6808
89 best of best 최근게시물 클릭시 권한이 없을때 로그인페이지로 이동하기 [1] title: [ani]깜빡이는 표정빽짱구 2006-10-23 45 6449
88 best of best 레벨별로 오른쪽 마우스 금지하기 title: [ani]깜빡이는 표정빽짱구 2006-10-30 44 6248
87 일정시간 페이지사용이 없을시 로그아웃버튼 먹통일때 title: [ani]깜빡이는 표정빽짱구 2006-10-23 12 5762
86 best of best 제로보드 에러 페이지를 경고창으로 띄우기 title: [ani]깜빡이는 표정빽짱구 2006-10-26 26 5628
85 best of best 도배방지 하루 글쓰기 코맨트쓰기 제한하기 title: [ani]깜빡이는 표정빽짱구 2004-04-10 22 5542
84 로그인 자동으로 커서놓기 title: [ani]깜빡이는 표정빽짱구 2006-10-24 18 5458
83 제로보드 비밀글관련 보안패치 4.1 pl7 title: [ani]깜빡이는 표정빽짱구 2005-04-06 17 5435
82 쪽지에 파일을 첨부하자!!! [1] title: [ani]깜빡이는 표정빽짱구 2004-10-24 19 5259
81 회원 탈퇴할 때 비밀번호와 주민등록번호 확인후 탈퇴시키기 title: [ani]깜빡이는 표정빽짱구 2005-01-02 16 5120
80 제로보드, 쪽지오면 자동쪽지함 띄우기 title: [ani]깜빡이는 표정빽짱구 2004-03-07 14 5089
79 자동로그인 경고창에서 [확인] 클릭시 바로 로그인 title: [ani]깜빡이는 표정빽짱구 2006-10-23 19 5085