파일이 HTTP 프르토콜의 POST방식을 통해 업로드되었는지를 확인한다.
filename이 HTTP 프로토콜의 POST 방식을 통해 업로드 되었으며 TRUE를 그렇지 않으면 FALSE를 반환한다.
업로드 된 파일을 지정한 위치로 옮긴다.
<input type="file">로 업로드되는 파일은 웹서버에서 지정한 임시디렉토리(보통 /tmp)에 저장되었다가 스크립트가 종료되면 자동으로 삭제된다.
move_uploaded_file()은 이렇게 임시디렉토리의 filename을 desination으로 이동시키는 역할을 한다. 그러므로 desination은 디렉토리명이된다. desination이 없거나 실패할 경우 FALSE를 반환하고 이미존재할경우 덮어쓴다.
한편 <input type ="file">형태로 파일이 업로드되면 파일정보는 $_FILES에 연관배열 형태로 저장되면 배열의 양식을 아래와 같다.
배열의 원소 | 의미 |
---|---|
$_FILES["inputname"]["name"] | 파일의 실제 이름 |
$_FILES["inputname"]["type"] | 파일의 MIME 타입(ex: "image/gif") |
$_FILES["inputname"]["size"] | 파일의 크기 (바이트) |
$_FILES["inputname"]["tmp_name"] | 임시 디렉토리에 전송된 파일의 이름 |
$_FILES["inputname"]["error"] | 파일 업로드와 관련된 에러코드번호 |
<html>
<head>
<title>PHP를 이용한 파일업로드 예제</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<style type="text/css">
<!--
BODY, TD {
font-size : 10pt;
}
//-->
</style>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="datasubmit.php">
<table width="602" border="0" cellspacing="0" cellpadding="1" align="center">
<tr>
<td bgColor="#8080FF">
<table width="600" border="0" cellspacing="1" cellpadding="10" align="center">
<tr>
<td width="600" colspan="2" align="center" bgColor="#CFD0ED"><b>PHP를 이용한 파일업로드 기능의 구현</b></td>
</tr>
<tr>
<td width="150" align="center" bgColor="#FAFAEE">업로드할 파일</td>
<td width="450" bgColor="#FAFAEE"><input type="file" name="myFile" size="40"> </td>
</tr>
<tr>
<td align="center" colspan="2" bgColor="#CFD0ED"><input type="submit" value="파일 업로드"> <input type="reset" value="취 소"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
<?
// 업로드한 파일을 저장할 디렉토리
$save_dir = "./files";
// 파일이 HTTP POST 방식을 통해 정상적으로 업로드되었는지 확인한다.
if(is_uploaded_file($_FILES["myFile"]["tmp_name"])) {
echo "업로드한 파일명 : " . $_FILES["myFile"]["name"] . "<br>"; //Hydrangeas.jpg
echo "업로드한 파일의 크기(Bytes) : " . $_FILES["myFile"]["size"] . "<br>"; //595284
echo "업로드한 파일의 MIME Type : " . $_FILES["myFile"]["type"] . "<br>"; //image/pjpeg
echo "임시 디렉토리에 저장된 파일명 : " . $_FILES["myFile"]["tmp_name"] . "<br>"; ///tmp/phpQDQpvq
// 파일을 저장할 디렉토리 및 파일명
$dest = $save_dir . "/" . $_FILES["myFile"]["name"];
// 파일을 지정한 디렉토리에 저장
if(!move_uploaded_file($_FILES["myFile"]["tmp_name"], $dest)) {
die("파일을 지정한 디렉토리에 저장하는데 실패했습니다.");
}
} else {
echo "업로드된 파일이 없습니다.";
}
?>
'PHP 주요레퍼런스 > 파일 시스템 함수' 카테고리의 다른 글
parse_ini_file (0) | 2011.08.08 |
---|---|
ftell (0) | 2011.08.08 |
rewind (0) | 2011.08.08 |
pathinfo (0) | 2011.08.08 |
dirname (0) | 2011.08.08 |