PHP에서 파일 업로드하기

모델1 방식에서의 PHP에서 파일 업로드를 처리하려면 다음과 같이 두개의 페이지가 필요합니다.

 

1. 파일을 입력받는 페이지 : upload.php

2. 파일 전송을 요청받는 페이지 : uploadProcess.php

 

각 페이지를 다음과 같이 구성해 보겠습니다.

 

//upload.php 파일
<form name="uploadForm" enctype="multipart/form-data" action="uploadProcess.php" method="POST">
  <input type="file" name="fileinput" class="form-control"><br>
  <button>파일 전송</button>
</form>



// uploadProcess.php 파일
<?php
//uploadPath 변수에 파일 업로드 디렉토리를 문자열로 지정합니다.
$uploadPath = "디렉토리명 입력/";
//name이 fileinput인 파일을 uploadFile 변수에 담아줍니다.
$uploadFile = $uploadPath . basename($_FILES['fileinput']['name']);
//move_uploaded_file함수를 이용하여 인자를 넣어줍니다.
//1. 서버에 임시로(tmp디렉토리) 자동 저장되어있는 파일을 첫번째 인자로 넣어줍니다.
//2. 위에서 지정한 저장되어야할 디렉토리/파일명을 두번째 인자로 넣어주어,
//실제로 원하는 곳에 저장될 수 있도록 처리합니다.
//처리 결과는 boolean 값을 return시켜줍니다. 성공 시 true, 실패 시 false.
//그에 따라 나머지 처리를 시켜줍니다.
if ( move_uploaded_file($_FILES['fileinput']['tmp_name'], $uploadFile) ) {
  echo "<script>alert('업로드가 완료되었습니다.'); history.back();</script>";
} else {
  echo "<script>alert('업로드에 실패하였습니다.'); history.back();</script>";
}
//아래의 코드는 업로드 로직의 디버깅 시 사용할 수 있습니다.
//$_FILES객체에 대한 상세 정보를 보여줍니다.
//print_r($_FILES);
?>

 

위와 같은 형태로 upload.php 페이지를 통해 파일을 선택한 뒤, uploadForm을 submit 처리하면

uploadProcess.php 파일에서 해당 요청을 받아 위와 같이 매우 간단하게 처리할 수 있습니다.

관련된 상세한 내용은 http://php.net/manual/kr/features.file-upload.post-method.php 링크에서 확인하세요.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.