ข้ามไปที่เนื้อหาหลัก

การอัปโหลดไฟล์ใน PHP: ขั้นตอนและตัวอย่างโค้ด

การอัปโหลดไฟล์เป็นหนึ่งในฟีเจอร์ที่สำคัญในการพัฒนาเว็บแอปพลิเคชัน ในบทความนี้เราจะสอนคุณวิธีทำการอัปโหลดไฟล์ใน PHP ด้วยขั้นตอนที่ง่ายต่อการติดตาม ตัวอย่างนี้จะชี้แนะเกี่ยวกับการใช้ฟอร์ม HTML และโค้ด PHP เพื่อรับและจัดการกับไฟล์ที่ผู้ใช้ส่งมา

ขั้นตอนที่ 1: สร้างฟอร์ม HTML

<!DOCTYPE html>

<html lang="th">

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>แบบฟอร์มอัปโหลดไฟล์</title>

</head>

<body>

  <h2>แบบฟอร์มอัปโหลดไฟล์</h2>

  <form action="upload.php" method="post" enctype="multipart/form-data">

    <label for="file">เลือกไฟล์:</label>

    <input type="file" name="file" id="file" required>

    <br>

    <button type="submit">อัปโหลด</button>

  </form>

</body>

</html>

ขั้นตอนที่ 2: สร้างไฟล์ PHP สำหรับการอัปโหลด

php
Copy code
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $target_dir = "uploads/";
  $target_file = $target_dir . basename($_FILES["file"]["name"]);
  $uploadOk = 1;
  $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

  // ตรวจสอบว่าไฟล์เป็นรูปภาพหรือไม่
  if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["file"]["tmp_name"]);
    if($check !== false) {
      echo "ไฟล์เป็นรูปภาพ - " . $check["mime"] . ".";
      $uploadOk = 1;
    } else {
      echo "ไฟล์ไม่ใช่รูปภาพ.";
      $uploadOk = 0;
    }
  }

  // ตรวจสอบขนาดไฟล์
  if ($_FILES["file"]["size"] > 500000) {
    echo "ขออภัย, ไฟล์มีขนาดใหญ่เกินไป.";
    $uploadOk = 0;
  }

  // อนุญาตเฉพาะประเภทไฟล์ที่กำหนด
  if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
  && $imageFileType != "gif" ) {
    echo "ขออภัย, ไฟล์ที่อนุญาตให้อัปโหลดคือ JPG, JPEG, PNG และ GIF เท่านั้น.";
    $uploadOk = 0;
  }

  // ตรวจสอบค่า $uploadOk ก่อนทำการอัปโหลด
  if ($uploadOk == 0) {
    echo "ขออภัย, ไฟล์ของคุณไม่ได้ถูกอัปโหลด.";
  } else {
    if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
      echo "ไฟล์ ". htmlspecialchars( basename( $_FILES["file"]["name"])). " ได้ถูกอัปโหลดเรียบร้อยแล้ว.";
    } else {
      echo "ขออภัย, มีข้อผิดพลาดในการอัปโหลดไฟล์ของคุณ.";
    }
  }
}
?>
ในตัวอย่างนี้, เราใช้ฟังก์ชัน move_uploaded_file เพื่อย้ายไฟล์ที่อัปโหลดไปยังไดเรกทอรีที่กำหนด. นอกจากนี้, เราทำการตรวจสอบประเภทของไฟล์และขนาดเพื่อให้มั่นใจว่าไฟล์ที่ถูกอัปโหลดเป็นไปตามเงื่อนไขที่กำหนด.

อย่าลืมปรับแต่งโค้ดนี้ตามความต้องการของโปรเจกต์และแก้ไขที่อยู่ของไดเรกทอรีที่เก็บไฟล์ตามต้องการ.

นี้คือเพียงเบื้องต้นของวิธีการอัปโหลดไฟล์ใน PHP พร้อมกับตัวอย่างโค้ดที่สามารถนำไปใช้งานได้.

ความคิดเห็น