파일 업로드 에러 정리 및 디버그
페이지 정보
작성자 서방님 댓글 0건 조회 192회 작성일 18-08-17 16:13본문
1. 파일 업로드 에러 코드
PHP 4.2.0 버전부터 PHP는 파일 배열 ($_FILES)에 에러 코드를 함께 반환.
에러코드는 $_FILES['변수명']['error'] 에서 확인 가능하며 아래와 같다.
UPLOAD_ERR_OK [CODE:0] |
파일 업로드 성공 |
---|---|
UPLOAD_ERR_INI_SIZE [CODE:1] |
업로드된 파일의 크기가 php.ini 에서 선언된 upload_max_filesize 보다 큼 |
UPLOAD_ERR_FORM_SIZE [CODE:2] |
업로드된 파일이 HTML 폼에서 지정한 max_file_size 보다 큼 |
UPLOAD_ERR_PARTIAL [CODE:3] |
파일이 일부분만 전송됨 |
UPLOAD_ERR_NO_FILE [CODE:4] |
파일이 전송되지 않음 |
UPLOAD_ERR_NO_TMP_DIR [CODE:6] |
임시 폴더가 없음 (PHP 4.3.10, PHP 5.0.0 에서 추가) |
UPLOAD_ERR_CANT_WRITE [CODE:7] |
디스크에 파일쓰기 실패 (PHP 5.1.0 에서 추가) |
UPLOAD_ERR_EXTENSION [CODE:8] |
확장에 의해 파일 업로드가 중지됨 (PHP 5.2.0 에서 추가) |
2. 파일 업로드 에러 디버깅
파일 업로드 프로그래밍을 하다보면 파일 업로드가 의도치 않게 동작하지 않는 경우들을 심심치 않게 볼수 있는데
이때는 아래와 같이 디버깅을 진행한다.
ㄱ. 임시 파일이 업로드 되었는지
=> ㄴ. 파일을 업로드 하려는 대상 디렉토리가 존재 하며 사용 권한이 올바른지
=> ㄷ. move_uploaded_file() 함수를 올바르게 사용하였는지
만약 ㄱ단계에서 에러 코드를 리턴하며 파일이 업로드 되지 않는 경우 아래 에러 코드별 디버그 방법을 참조하여 처리하며
ㄴ, ㄷ의 경우에서 걸린다면 자신의 프로그램을 다시한번 점검해본다.
UPLOAD_ERR_INI_SIZE [CODE:1] |
업로드된 파일 크기가 upload_max_size 보다 작은 경우
ini_set('upload_max_filesize', '10M'); |
---|---|
UPLOAD_ERR_FORM_SIZE [CODE:2] |
폼안에 max_file_size 값을 변경 항상 우선 선언되어야 한다. <form enctype="multipart/form-data" action="_URL_" method="POST"> |
UPLOAD_ERR_NO_TMP_DIR [CODE:6] |
임시폴더의 경로 및 폴더의 존재 유무, 사용권한등을 체크한다. php의 sys_get_temp_dir() 함수를 echo로 출력하여 확인 가능. |
댓글목록
등록된 댓글이 없습니다.