본문 바로가기
개발

파일업로드 테스트페이지 소스

by 똘또히 2016. 9. 22.

<form enctype="multipart/form-data" action="" method="POST"> 

    <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 

    이 파일을 전송합니다: <input name="userfile" type="file" /> 

    <input type="submit" value="파일 전송" /> 

</form> 


 <?php 

 // uploads디렉토리에 파일을 업로드합니다. 

 $uploaddir = './uploads/'; 

 $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); 


 echo '<pre>'; 

 if($_POST['MAX_FILE_SIZE'] < $_FILES['userfile']['size']){ 

      echo "업로드 파일이 지정된 파일크기보다 큽니다.\n"; 

 } else { 

     if(($_FILES['userfile']['error'] > 0) || ($_FILES['userfile']['size'] <= 0)){ 

          echo "파일 업로드에 실패하였습니다."; 

     } else { 

          // HTTP post로 전송된 것인지 체크합니다. 

          if(!is_uploaded_file($_FILES['userfile']['tmp_name'])) { 

                echo "HTTP로 전송된 파일이 아닙니다."; 

          } else { 

                // move_uploaded_file은 임시 저장되어 있는 파일을 ./uploads 디렉토리로 이동합니다. 

                if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 

                     echo "성공적으로 업로드 되었습니다.\n"; 

                } else { 

                     echo "파일 업로드 실패입니다.\n"; 

                } 

          } 

     } 

 } 


 print_r($_FILES); 



  파일등록이 에러가날때 아래와 같은 메세지를 출력한다.

*기본적으로 error 값이 "0"일때는 정상적으로 작동하는것을 의미한다.


UPLOAD_ERR_OK

값: 0; 오류 없이 파일 업로드가 성공했습니다.

UPLOAD_ERR_INI_SIZE

값: 1; 업로드한 파일이 php.ini upload_max_filesize 지시어보다 큽니다.

UPLOAD_ERR_FORM_SIZE

값: 2; 업로드한 파일이 HTML 폼에서 지정한 MAX_FILE_SIZE 지시어보다 큽니다.

UPLOAD_ERR_PARTIAL

값: 3; 파일이 일부분만 전송되었습니다.

UPLOAD_ERR_NO_FILE

값: 4; 파일이 전송되지 않았습니다.

UPLOAD_ERR_NO_TMP_DIR

값: 6; 임시 폴더가 없습니다. PHP 4.3.10과 PHP 5.0.3에서 추가.

UPLOAD_ERR_CANT_WRITE

값: 7; 디스크에 파일 쓰기를 실패했습니다. PHP 5.1.0에서 추가.

UPLOAD_ERR_EXTENSION

값: 8; 확장에 의해 파일 업로드가 중지되었습니다. PHP 5.2.0에서 추가.