본문 바로가기
BackEnd/Server

[PHP] $_FILES 오류 메시지

by 푸고배 2021. 2. 16.

$_FILES는 HTTP 파일 업로드 변수로, HTTP POST 매서드를 통해 현재 스크립트에 업로드된 항목의 배열이다.

$_FILES 업로드 시 발생할 수 있는 에러 종류를 알아보도록 한다.

 

 오류 값 찾기 (PHP 디버깅 방법)

php는 error_log() 함수를 통해 디버깅할 수 있다.

$_FILES['[userFileName]']은 배열이므로 error_log(print_r($_FILES['[userFileName]'], TRUE) 와 같이 사용해야한다.

(또는 $_FILES['[userFileName]']['error']로 error 값만 따로 찾아 출력할 수 있다.)

 

apache2 환경에서의 error log 파일의 경로는 아래와 같다.

 

sudo tail -f /var/log/apache2/error.log

 

 

아래의 예시를 살펴보자.

 

Array\n(\n    [name] => name    [type] => \n    [tmp_name] => \n    [error] => 1\n    [size] => 0\n)\n, referer:

 

[error] => 오류코드로, 예시의 오류코드는 1이 된다.

 

 

 오류 메세지 설명

 UPLOAD_ERR_OK 

Error Code : 0;

오류가 없으며 파일이 성공적으로 업로드 되었다.

 

 UPLOAD_ERR_INI_SIZE 

Error Code : 1;

업로드 된 파일이 php.iniupload_max_filesize 지시문을 초과한다.

 

 UPLOAD_ERR_FROM_SIZE 

Error Code : 2;

업로드 된 파일이 HTML 양식에 지정된 max_file_size 지시문을 초과하였다.

 

 UPLOAD_ERR_PARTIAL 

Error Code : 3;

업로드 된 파일이 부분적으로만 업로드 되었다.

 

 UPLOAD_ERR_NO_FILE 

Error Code : 4;

업로드 된 파일이 없다.

 

 UPLOAD_ERR_TMP_DIR 

Error Code : 6;

임시 폴더가 없다. PHP 5.0.3에서 도입되었다.

 

 UPLOAD_ERR_CANT_WRITE

Error Code : 7;

디스크에 파일을 쓰지 못했다. PHP 5.1.0에서 도입되었다.

 

 UPLOAD_ERR_PARTIAL 

Error Code : 8;

PHP 확장으로 인해 파일 업로드가 중지되었다. PHP는 파일 업로드를 중단시킨 확장자를 확인하는 방법을 제공하지 않는다. phpinfo()를 사용해 로드된 확장 목록을 살펴보는 것이 도움이 될 수도 있다. PHP 5.2.0에서 도입되었다.

 

 

참고 자료 :

 

PHP: Error Messages Explained - Manual

One thing that is annoying is that the way these constant values are handled requires processing no error with the equality, which wastes a little bit of space.  Even though "no error" is 0, which typically evaluates to "false" in an if statement, it will

www.php.net

 

반응형

댓글