<form enctype="multipart/form-data" action="upload_ok.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
전송할 파일 : <input name="userfile" type="file">
<input type="submit" value="파일 전송">
</form>
<?php
$uploaddir = "/uploads/";
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "파일 업로드 성공";
} else {
echo "파일 업로드 실패";
}
?>
*주의 : 용량제한에 걸릴 수 있으니 value = "30000" 값에 주의한다. 또한, 안드로이드와 연동할 경우 안드로이드 코드에서의 변수 name값과 php코드에서 userfile이라고 표시된 부분의 이름이 같아야 한다.
$_FIELS 배열 정보 (예제에서 사용한 userfile로 표현함에 주의. 어떤 이름이라도 가질 수 있다.)
$_FILES['userfile']['name']
클라이언트 머신에 존재하는 파일의 원래 이름.
$_FILES['userfile']['type'];
브라우저가 이 정보를 제공할 경우에, 파일의 mime 형식. 예를 들면 "image/gif".
$_FILES['userfile']['size'];
업로드된 파일의 바이트로 표현한 크기.
$_FILES['userfile']['tmp_name'];
서버에 저장된 업로드된 파일의 임시 파일 이름.
$_FILES['userfile']['error'];
파일 업로드에 관련한 에러 코드. ['error']는 PHP 4.2.0에서 추가 됨.
* 폼에서 어떠한 파일도 선택하지 않으면, PHP는 $_FILES['userfile']['size']를 0으로, $_FILES['userfile']['tmp_name']을 none으로 반환한다.
에러 메세지 설명
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; 파일이 전송되지 않음.
php.ini에서 설정 값을 확인한다.
- file_uploads -> 업로드 사용 여부. On
- upload_tmp_dir -> 임시 저장 될 디렉토리 /tmp
- upload_max_filesize -> 허용하는 파일 최대 크기
- max_file_uploads -> 허용하는 최대 업로드 수
'아카이브 > PHP' 카테고리의 다른 글
OPcache, APC/APCu (0) | 2016.06.13 |
---|---|
PHP - xhprof (profiler) (0) | 2016.06.10 |
isset vs empty vs in_null 반환값 비교 (0) | 2015.01.29 |
[환경변수] SERVER 전역변수 (0) | 2015.01.29 |
트랩도어함수(암호화) (0) | 2015.01.21 |