[php] PHP 파일 업로드의 기본 개념

PHP를 사용하여 파일을 업로드하는 것은 웹 애플리케이션에서 일반적인 작업입니다. 사용자가 이미지, 동영상 또는 기타 파일을 업로드할 수 있게 하려면 PHP를 사용하여 파일 업로드 기능을 구현해야 합니다. 이 기사에서는 PHP에서 파일을 업로드하는 기본적인 개념을 살펴보겠습니다.

HTML Form 작성

우선 파일을 업로드하기 위해 HTML form을 작성해야 합니다. 아래는 파일을 업로드할 수 있는 기본적인 HTML form의 예시입니다.

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

기본적으로 <form> 요소의 enctype 속성을 multipart/form-data로 설정해야 합니다. 또한 파일을 업로드할 <input> 요소는 type 속성을 file로 지정해야 합니다.

PHP 파일 업로드 처리

다음으로 PHP 파일에서 파일 업로드를 처리해야 합니다. 아래는 파일 업로드를 처리하는 간단한 PHP 코드입니다.

<?php
$targetDirectory = "uploads/";
$targetFile = $targetDirectory . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));

// 파일 유효성 검사
if (isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// 파일 업로드
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>

위의 PHP 코드는 파일을 업로드하기 위해 적절한 디렉토리를 지정하고, 업로드된 파일의 유효성을 검사한 후에 실제로 파일을 업로드하는 처리를 수행합니다.

완료

이제 파일 업로드를 위한 기본적인 HTML form을 생성하고, PHP를 사용하여 파일 업로드를 처리해 보았습니다. 파일 업로드 시 보안 및 성능 측면에서 추가 고려해야 할 사항들도 있으므로, 실제 프로덕션 환경에서 사용할 때에는 이러한 측면들도 고려해야 합니다.

참고 자료