제로보드 관련된 유용한 정보를 공유하는 곳입니다.
  • 웹미니 한줄 전광판 영역 입니다.
글 수 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/1f8/trackback
소중한 댓글 부탁드립니다.
추천수 10단위당 메달이 1개씩 노출되고, 추천수에 따라 배경색이 변하며, 일정수의 추천수를 받을시 BEST 아이콘이 붙게됩니다.
추천수에 따른 배경색 보기 본문으로 바로가기
  • 추천수 50개이상
  • 추천수 30개이상
  • 추천수 20개이상
  • 추천수 10개이상
  • 추천수 3개이상
닫기

댓글 '1'

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

2005.03.17 02:31:39

작성자
저도 적용했는데 참 좋습니다. 한글로 된 파일을 올릴시 자동으로 영문으로 바꿔줍니다. 모두들 적용해보세요.
List of Articles
번호 제목 글쓴이 날짜 추천 수 조회 수
78 게시판별로 권한 출력하기 title: [ani]깜빡이는 표정빽짱구 2005-11-20 4 2608
77 글읽기 권한 없을때 제목 클릭하면 경고창 띄우기 title: [ani]깜빡이는 표정빽짱구 2005-11-17 4 2584
76 제로보드에 글쓴이 국가 아이콘 달기 file title: [ani]깜빡이는 표정빽짱구 2005-11-17 10 4458
75 각종 검색버그 다 잡았습니다. [1] title: [ani]깜빡이는 표정빽짱구 2005-11-11 16 3233
74 제로보드 비밀글관련 보안패치 4.1 pl7 title: [ani]깜빡이는 표정빽짱구 2005-04-06 17 5435
73 best of best 로그인창에 아이디 비밀번호란 이미지넣기 title: [ani]깜빡이는 표정빽짱구 2005-04-05 28 3766
72 다운로드시 포인트 차감 + 강제 다운로드 창 뜨기. title: [ani]깜빡이는 표정빽짱구 2005-04-04 16 3891
71 업로드시 그림 파일명이 한글일경우 이름 자동 변경하기 [1] title: [ani]깜빡이는 표정빽짱구 2005-03-16 11 3742
70 자동로그인 풀림현상 100%해결법 [2] title: [ani]깜빡이는 표정빽짱구 2005-03-16 12 4552
69 일반문서에 레벨별 권한을 주는 방법 title: [ani]깜빡이는 표정빽짱구 2005-03-13 11 3012
68 실시간 쪽지함띄우기 title: [ani]깜빡이는 표정빽짱구 2005-03-09 15 3273
67 방문객이 레이어 메뉴의 회원정보 보기를 금지시키자!!! title: [ani]깜빡이는 표정빽짱구 2005-01-20 18 3335
66 best of best "where" 검색시 오류 뜨는것 해결 [1] title: [ani]깜빡이는 표정빽짱구 2005-01-02 22 2761
65 회원 탈퇴할 때 비밀번호와 주민등록번호 확인후 탈퇴시키기 title: [ani]깜빡이는 표정빽짱구 2005-01-02 16 5120
64 새로운 코멘트 달리면 코멘트숫자 색갈바꿔주기 [1] 맑은숲 2004-10-28 18 2493
63 best of best 일정조회수 되면 Cool 마크 달기. [1] title: [ani]깜빡이는 표정빽짱구 2004-10-24 21 2858
62 best of best 생일자 로그인시 축하메세지 및 축하곡 띄우기 title: [ani]깜빡이는 표정빽짱구 2004-10-24 32 3589
61 쪽지에 파일을 첨부하자!!! [1] title: [ani]깜빡이는 표정빽짱구 2004-10-24 19 5259
60 제로보드 게시판아이디 바꾸기.. file [3] title: [ani]깜빡이는 표정빽짱구 2004-10-24 18 2649
59 게시물 읽은 사람들 리스트 보여주기 [1] title: [ani]깜빡이는 표정빽짱구 2004-10-24 13 3292