ITmembers.net 아카이브 · 2002–2009

질문과 답변

파일이름을 다시 줄려면 어떻게 하나요?

제가 지금 파일 이름을 mktime()함수를 써서 업로드를 하고 있습니다.
한글 문제를 피할려고요 그런데 문제는 폴더를 보면 데이타 파일로 변해 버리더군여.^^;;;원래 제가 구현하고 싶었던 것은 클라이언트가 사진을 업로드 하면 업로드 폴더에 01.jpg 02.jpg 03.jpg이러한 식으로 파일명을 숫자나 영어로 일정하게 증가시켜서 저장하고 싶었습니다. 하지만 도저히 모르겠더라구염;;;

<?php
   include "./connect.php";

   $target_dir = "up";  // 서버에 up 이라는 디렉토리를 만들었음


   # ----------------------------------------------------------------
   # 파일이 업로드되었을 경우
   # ----------------------------------------------------------------

echo "1. 초기업로드 :  $upfile <br>";
   if($upfile != '')
   {
      // 업로드 금지 파일 식별 부분
      $filename = explode(".", $upfile_name);

          $res=mktime();

      //확장자를 가려냄
      $extension = $filename[sizeof($filename)-1];

          $extension = strtolower( $extension );

          echo("파일 이름 $filename[0]");

      
      echo "2. 확장자 검사 :  $extension <br>";
      if( !( strcmp($extension,"png") || strcmp($extension,"gif") || strcmp($extension,"jpg") ) )
      {
         echo( "업로드가 금지된 파일입니다.");
      }
    
      // 동일한 파일이 있는지 확인하는 부분
      $target = $target_dir . "/" . $res;
        
          

      echo "2. 복사할 파일 중복체크 :  ". file_exists($target) ." <br>";

          echo "<br> 원본 : $upfile , 복사본 : $target <hr>";

      if(file_exists($target)) {
        echo("동일한 파일이 있습니다.");
      }
    
      // 지정된 디렉토리에 파일 저장하는 부분
      $rtn = move_uploaded_file($upfile,$target) or die( "3. 카피에러" );
      if(!$rtn )
      {   // false일 경우
          echo( "파일 저장 실패");
      }
      
   }

   # ----------------------------------------------------------------
   # 디비 저장
   # ----------------------------------------------------------------
   $query="insert into test values('','$name','$comment','$target','$upfile_name')";
   $result=mysql_query($query);
   if($result)
   {
      echo("질의 성공");
   }
   else
   {
      echo("질의 실패");
   }
?>
소스는 이렇고요 id가 프라이 머리 키 이고 자동 증가 함수 입니다. 어떻게 해야 될지  조언 좀 부탁 드립니다.

댓글 1