파일 업로드를 위해 먼저 폼을 하나 만듭니다.
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'를 사용합니다.
Value | Description |
---|---|
application/x-www-form-urlencoded | Default. All characters are encoded before sent (spaces are converted to "+" symbols, and special characters are converted to ASCII HEX values) |
multipart/form-data | No characters are encoded. This value is required when you are using forms that have a file upload control |
text/plain | Spaces 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 |