happy cat image

everdevel

우리 모두의 웹 입문, 에버디벨

UI 변경
오늘도 방문해 주셔서 감사합니다.
여러분이 매일 찾아주셔서 하루 5명 오는 사이트에서 1000명이 오는 사이트로 커갈 수 있었습니다.
드디어 2017년 8월 25일 에버디벨 책이 [웹코딩 시작하기]라는 제목으로 정말 출간 합니다.
정말 열심히 최선을 다해 많은 조사를 하며 작성했습니다. ^-^*
에버디벨은 제가 프로그래머가 아닌 시절 만든 사이트지만, [웹코딩 시작하기]는 저의 2년간의 프로그래머 경력을
살려서 꼭 알아야 한다고 생각하는 것들을 최대한 쉽게 설명하여 만들었습니다.
[웹코딩 시작하기]서평 이벤트도 시작했습니다.
[웹코딩 시작하기 서평 이벤트 많은 참여 부탁드립니다. ^-^* 눌러주세요.]

- 2017.8.5 에버디벨 운영자

PHP 파일 시스템 - 파일 업로드

input type="file" 그리고 enctype

우리가 글을 쓸때는 input태그 혹은 textarea를 사용했습니다. input 사용시 type으로 text 사용했죠?
파일을 업로드 할때는 input type="file" 을 사용합니다. 그리고 enctype="multipart/form-data"를 써주어야 합니다.
예문을 통해서 알아봅시다.

<?php
 echo "file upload program<br />";
 echo "select the file<br />";
?>
<form method="post" action="upload2.php" enctype="multipart/form-data">
<input type="file" size=100 name="upload"><hr>
<input type="submit" value="send">
</form>

위 파일을 저장후 웹브라우저에 실행시켜서 파일을 선택해 보면 아래의 화면이 출력된다.

php image

위의 input태그안에 size=100은 찾을 파일의 경로를 보여줄 크기이다.
send를 눌러도 다음 페이지로 가지는 않는다. 우리는upload2.php파일을 아직 생성하지 않았기 때문이다.
그럼 생성해 봅시다.

<?php
 echo "confirm file information <br />";
 $uploadfile = $_FILES['upload'] ['name'];
 if(move_uploaded_file($_FILES['upload']['tmp_name'],$uploadfile)){
  echo "파일이 업로드 되었습니다.<br />";
  echo "<img src ={$_FILES['upload']['name']}> <p>";
  echo "1. file name : {$_FILES['upload']['name']}<br />";
  echo "2. file type : {$_FILES['upload']['type']}<br />";
  echo "3. file size : {$_FILES['upload']['size']} byte <br />";
  echo "4. temporary file name : {$_FILES['upload']['size']}<br />";
 } else {
  echo "파일 업로드 실패 !! 다시 시도해주세요.<br />";
 }
?>

위 파일을 실행하면 아래의 화면이 나옵니다..

php image

소스를 분석해보면,

php image

upload.php파일에서 우리는 name을 upload로 설정하였다.

post방식으로 선언된 파일을 받기 위해서 변수 선언후 값을 $_FILES['name명'] ['name'] 을 사용한다.

4행에 있는

if(move_uploaded_file($_FILES['upload']['tmp_name'],$uploadfile))

upload.php에서 파일이 선택되고 send버튼이 눌려지면 클라이언트의 파일은 서버의 임시 디렉토리인 c:\apm_setup\temp에 전송된다. 임시 디렉토리파일을 원하는 장소로 가져오기 위해 move_uploaded_file함수를 사용한다. 이때 생성된 임시 파일은 자동으로 삭제가 되고, 업로드한 파일은 upload2.php파일이 있는 폴더로 이동한다.


다음 강좌는 파일 함수 입니다.!

강좌로 돌아가기