본문 바로가기
Study/php

PHP 파일 업로드및 파일 정보보기

by Answer Choi 2015. 10. 1.
반응형

파일 업로드를 위해 먼저 폼을 하나 만듭니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
  <TITLE>UPLOAD TEST</TITLE>
<head>
    <meta charset="utf-8"/>
    <H2> File Upload Test!!</H2>
    <br>
    <p> choose file for upload!! </p>
</head>  
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
   <input type="file" name="userfile"  />
   <input type="submit" value="upload" />
</form>
</body>
</html>
cs

Line 11~14가 파일 업로드를 위한 폼입니다.


enctype은 엔코딩방식을 말하는데 파일 업로드용으로는 보통 'multipart/form-data'를 사용합니다.


ValueDescription
application/x-www-form-urlencodedDefault. All characters are encoded before sent (spaces are converted to "+" symbols, and special characters are converted to ASCII HEX values)
multipart/form-dataNo characters are encoded. This value is required when you are using forms that have a file upload control
text/plainSpaces are converted to "+" symbols, but no special characters are encoded

그리고 form 안의 데이터들은 post방식으로 upload.php로 전달하게 됩니다.


Line 12~13은 입력창으로 input type에 따라 html이 적절한 폼을 만들어 줍니다.


웹페이지에서 보면 아래와 같이 나옵니다.



파일을 업로드할 upload.php입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <TITLE>UPLOAD</TITLE>
</head>   
<body>
<?php
$uploaddir = '/var/www/html/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Success file upload!".'<br>';
    echo 'File info'.'<br>';
    print_r($_FILES);
else {
    echo "Fail to file upload!".'<br>';
}
echo "</pre>";
?>
</body>
</html>
cs


Line 9는 upload(저장) 할 위치입니다.


Line 10은 저장 할 위치와 파일이름입니다.


string basename ( string $path [, string $suffix ] )


basename(경로및 파일)을 쓰게되면 이름을 String으로 받게 됩니다.


그리고 그 안에 쓰인 $_FILES 는 없로드한 파일 정보 array로 가지고 있습니다.


$_FILES['userfile']['name'] 를 하게 되면 업로드한 파일의 이름정보를 가져오게 됩니다.


자세한 건 Line 15에서 뿌려줍니다.


Line 12 bool move_uploaded_file ( string $filename , string $destination ) 


move_uploaded_file(업로드할 파일이름, 업로드할 위치)는 업로드한 파일이 업로드 위치에 있는지를


알려줍니다.


역시 $_FILES['userfile']['tmp_name'] 는 업로드한 파일의 임시이름 정보 입니다.



Line 15 : 업로드가 성공하면 파일의 정보를 뿌려줍니다. 


Line 11과 Line 19 배열로된 정보들을 보기좋게 정렬해 줍니다.


출력해 보면



만약 <pre>가 없다면



이런 식으로 보이게 됩니다.

반응형

'Study > php' 카테고리의 다른 글

PHP ] 시간  (0) 2015.10.02
PHP ] GET, POST  (0) 2015.10.01
PHP 기초 ] 폴더제어  (0) 2015.09.30
PHP 기초 ] 파일제어 2  (0) 2015.09.30
PHP 기초] 간단한 파일제어  (0) 2015.09.25

인기글