<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에서 추가.
'개발' 카테고리의 다른 글
[php] preg replace 문장 패턴제거하기 (0) | 2016.10.29 |
---|---|
[보안] xss 게시판 취약점 보안 (0) | 2016.10.18 |
[html] 텝을 활용한 메뉴버튼 (0) | 2016.08.26 |
[html]풀다운 메뉴 / 자바스크립 풀다운 메뉴 (0) | 2016.08.26 |
input type=file 속성 // 파일찾기 이미지 버튼화 하기 (0) | 2016.08.26 |