[php] PHP를 사용한 파일 업로드와 파일 업로드 루트 디렉토리 설정

파일 업로드는 PHP 웹 애플리케이션에서 자주 사용되는 기능 중 하나입니다. 사용자가 웹 페이지를 통해 파일을 서버에 업로드할 수 있게 해주는 기능이 필요할 때가 많습니다. 이 기능을 구현하려면 몇 가지 중요한 단계를 따라야 합니다.

파일 업로드를 위한 HTML 폼 생성

먼저, 파일 업로드를 받을 HTML 폼을 생성해야 합니다. <form> 요소를 사용하고 enctype="multipart/form-data"를 속성으로 추가하여 파일 데이터를 전송할 수 있도록 설정해야 합니다.

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="Upload">
</form>

파일 업로드 처리

다음으로, 파일을 실제로 받아 처리할 PHP 스크립트가 필요합니다. 아래는 간단한 upload.php 파일의 예시입니다.

<?php
$targetDirectory = "uploads/";
$targetFile = $targetDirectory . basename($_FILES["file"]["name"]);

if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
  echo "파일이 업로드 되었습니다.";
} else {
  echo "파일 업로드 중 문제가 발생했습니다.";
}
?>

파일 업로드 루트 디렉토리 설정

파일을 업로드할 때, 업로드된 파일들을 저장할 디렉토리를 설정해야 합니다. 이 디렉토리는 웹 서버가 접근 가능한 위치에 있어야 하며, 이를 “업로드 루트 디렉토리”라고 합니다. 이 디렉토리는 웹 애플리케이션의 중요한 부분이며, 보안을 유지하기 위해 올바르게 설정되어야 합니다.

예를 들어, 다음과 같이 uploads 디렉토리를 웹 서버 루트 디렉토리 내에 생성할 수 있습니다.

/var/www/html/uploads

위와 같이 디렉토리를 설정하면 PHP의 파일 업로드 기능이 올바르게 작동하고, 업로드된 파일은 이 디렉토리에 저장됩니다.

마치며

이제 파일 업로드를 위한 HTML 폼을 생성하고, PHP를 사용하여 파일을 업로드하고 저장할 수 있는 기본적인 방법을 알아보았습니다. 파일 업로드 루트 디렉토리를 설정하여 보안성을 유지하고, 원하는 위치에 파일을 저장할 수 있습니다.


참고 문헌: