글 작성 배경:갤러리 화면 구성 중 이미지 저장하는 부분이 필요하게 됨

알아두어야 할 내용:$_FILES[][]
 - HTML 폼에서 <input type="file" id="userfile" .....>를 사용한 파일에 대한 정보를 가지고 있음
 - register_globals(php.ini 파일에 들어있는 변수값)가 off일때 꼭 사용해야 함
 - $_FILES['userfile']['tmp_name'] - 웹 서버에 임시로 저장된 파일의 위치.
 $_FILES['userfile']['name'] - 사용자 시스템에 있을 때의 파일 이름.
 $_FILES['userfile']['size'] - 파일의 바이트 크기.
 $_FILES['userfile']['type'] - 파일의 MIME 타입을 가리킴. (예:text/plain이나 image/gif 등)
 $_FILES['userfile']['error'] - 파일 업로드할 때 일어난 오류 코드를 알려줌



예제
input.php(입력폼)
---------------------------------------------------------------------------------------
<form method="post" enctype="multipart/form-data" action="save.php">
........
<div id="pimage"><p>이미지:<input type="file" name="uimg" id="textfield" />(이미지사이즈 : 168 X 115)</div>
.........
</form>
---------------------------------------------------------------------------------------

save.php(저장폼)
---------------------------------------------------------------------------------------
<?php
 $img_dir = $_SERVER['DOCUMENT_ROOT']."/저장할디렉토리명";           //저장 디렉토리
 $img_tmp = $_FILES['uimg']['tmp_name'];             //임시 파일명
 $img_type = $_FILES['uimg']['type'];             //저장가능 이미지 타입
 $img_name = $_FILES['uimg']['name'];             //파일명(ex : xxxx.jpg)

 $filename = explode(".",$img_name);              //파일명 및 확장자를 분리한 배열
 $extension = strtoupper($filename[sizeof($filename)-1]);        //확장자 추출
//타임 및 난수를 이용해서 기존 파일명 대신 사용할려고 함
 srand((double)microtime() * 1000000);             //난수만들기(seed 초기화)
 $random = sprintf('%03d',rand(1,999));             //난수만들기
 $up_filename = time()."_".$random.".".strtolower($extension);  //DB저장 파일명       
 $save_name = $img_dir."/".$up_filename;             //copy시 전체경로 및 파일명

 //파일 확장자로 올릴 수 있는 파일 체크함
 if($extension == "JPG" || $extension == "GIF") {
 } else {
  echo("
   <script>
   window.alert('지원 가능하지 않는 파일입니다. \\n이미지를 입력하여 주세요.');
   history.go(-1);
   </script>
  ");
  exit;
 }

 if(copy($img_tmp, $save_name)) {     //파일 업로드
  unlink($img_tmp);        //임시파일삭제
 }
 else {
  unlink($img_tmp);
  echo("
    <script>
    window.alert('파일 저장시 오류가 발생하였습니다.\\n감사합니다.');
    history.go(-1);
    </script>
   ");
  exit;
 }
.....
DB저장부분 삽입
.....
?>
---------------------------------------------------------------------------------------

이상으로 간단한 예제를 적습니다.

공부시에 많은 도움되면 좋겠습니다.

+ Recent posts