บทช่วยสอนPHP

PHP HOME แนะนำ PHP การติดตั้ง PHP PHP ไวยากรณ์ ความคิดเห็น PHP ตัวแปร PHP PHP Echo / พิมพ์ ประเภทข้อมูล PHP PHP Strings หมายเลข PHP PHP คณิตศาสตร์ ค่าคงที่ PHP ตัวดำเนินการ PHP PHP If...Else...Elseif PHP Switch PHP Loops ฟังก์ชัน PHP PHP Arrays PHP Superglobals PHP RegEx

แบบฟอร์มPHP

การจัดการแบบฟอร์ม PHP การตรวจสอบแบบฟอร์ม PHP ต้องใช้แบบฟอร์ม PHP URL แบบฟอร์ม PHP/อีเมล แบบฟอร์ม PHP เสร็จสมบูรณ์

PHPขั้นสูง

วันที่และเวลา PHP รวม PHP การจัดการไฟล์ PHP ไฟล์ PHP เปิด/อ่าน สร้าง/เขียนไฟล์ PHP อัพโหลดไฟล์ PHP คุกกี้ PHP PHP Sessions ตัวกรอง PHP ตัวกรอง PHP ขั้นสูง ฟังก์ชันเรียกกลับของ PHP PHP JSON ข้อยกเว้น PHP

PHP OOP

PHP OOP คืออะไร คลาส PHP/วัตถุ ตัวสร้าง PHP PHP Destructor PHP Access Modifiers PHP Inheritance ค่าคงที่ PHP PHP Abstract Classes อินเทอร์เฟซ PHP PHP ลักษณะ PHP Static Methods PHP คุณสมบัติคงที่ PHP เนมสเปซ PHP Iterables

ฐานข้อมูลMySQL

ฐานข้อมูล MySQL MySQL Connect MySQL สร้าง DB MySQL สร้างตาราง MySQL แทรกข้อมูล MySQL รับ ID ล่าสุด MySQL แทรกหลายรายการ MySQL ที่เตรียมไว้ MySQL Select Data MySQL Where MySQL สั่งซื้อโดย MySQL ลบข้อมูล ข้อมูลอัพเดต MySQL MySQL Limit Data

PHP XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - รับ PHP XML Expat PHP XML DOM

PHP - AJAX

บทนำ AJAX AJAX PHP ฐานข้อมูล AJAX AJAX XML AJAX ค้นหาสด AJAX โพล

ตัวอย่างPHP

ตัวอย่าง PHP PHP คอมไพเลอร์ แบบทดสอบ PHP แบบฝึกหัด PHP ใบรับรอง PHP

ข้อมูลอ้างอิงPHP

ภาพรวม PHP PHP Array ปฏิทิน PHP PHP วันที่ ไดเรกทอรี PHP ข้อผิดพลาด PHP ข้อยกเว้น PHP ระบบไฟล์ PHP ตัวกรอง PHP PHP FTP PHP JSON คีย์เวิร์ด PHP PHP Libxml PHP Mail PHP คณิตศาสตร์ PHP เบ็ดเตล็ด PHP MySQLi เครือข่าย PHP การควบคุมเอาต์พุต PHP PHP RegEx PHP SimpleXML PHP Stream PHP String การจัดการตัวแปร PHP PHP XML Parser PHP Zip เขตเวลา PHP

อัพโหลดไฟล์ PHP


ด้วย PHP ทำให้ง่ายต่อการอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์

อย่างไรก็ตาม ด้วยความง่ายดายอาจตกอยู่ในอันตราย ดังนั้นโปรดใช้ความระมัดระวังเมื่ออนุญาตให้อัปโหลดไฟล์!


กำหนดค่าไฟล์ "php.ini"

ขั้นแรก ตรวจสอบให้แน่ใจว่าได้กำหนดค่า PHP เพื่ออนุญาตให้อัปโหลดไฟล์

ในไฟล์ "php.ini" ให้ค้นหาfile_uploadsคำสั่งและตั้งค่าเป็น On:

file_uploads = On

สร้างแบบฟอร์ม HTML

ถัดไป สร้างแบบฟอร์ม HTML ที่อนุญาตให้ผู้ใช้เลือกไฟล์รูปภาพที่ต้องการอัปโหลด:

<!DOCTYPE html>
<html>
<body>

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

</body>
</html>

กฎบางอย่างที่ต้องปฏิบัติตามสำหรับแบบฟอร์ม HTML ด้านบน:

  • ตรวจสอบให้แน่ใจว่าแบบฟอร์มใช้ method="post"
  • แบบฟอร์มยังต้องการแอตทริบิวต์ต่อไปนี้: enctype="multipart/form-data" ระบุประเภทเนื้อหาที่จะใช้เมื่อส่งแบบฟอร์ม

หากไม่มีข้อกำหนดข้างต้น การอัปโหลดไฟล์จะไม่ทำงาน

สิ่งอื่น ๆ ที่ควรสังเกต:

  • แอตทริบิวต์ type="file" ของแท็ก <input> แสดงฟิลด์อินพุตเป็นตัวควบคุมการเลือกไฟล์ โดยมีปุ่ม "เรียกดู" ถัดจากตัวควบคุมอินพุต

แบบฟอร์มด้านบนจะส่งข้อมูลไปยังไฟล์ชื่อ "upload.php" ซึ่งเราจะสร้างต่อไป



สร้างสคริปต์ PHP ไฟล์อัพโหลด

ไฟล์ "upload.php" มีรหัสสำหรับการอัปโหลดไฟล์:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
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;
  }
}
?>

สคริปต์ PHP อธิบาย:

  • $target_dir = "uploads/" - ระบุไดเร็กทอรีที่จะวางไฟล์
  • $target_file ระบุพาธของไฟล์ที่จะอัพโหลด
  • $uploadOk=1 ยังไม่ได้ใช้งาน (จะใช้ในภายหลัง)
  • $imageFileType มีนามสกุลไฟล์ (ตัวพิมพ์เล็ก)
  • ต่อไป ให้ตรวจสอบว่าไฟล์ภาพเป็นภาพจริงหรือภาพปลอม

หมายเหตุ:คุณจะต้องสร้างไดเร็กทอรีใหม่ชื่อ "uploads" ในไดเร็กทอรีที่มีไฟล์ "upload.php" อยู่ ไฟล์ที่อัพโหลดจะถูกบันทึกไว้ที่นั่น


ตรวจสอบว่าไฟล์มีอยู่แล้ว

ตอนนี้เราเพิ่มข้อจำกัดบางอย่างได้แล้ว

ขั้นแรก เราจะตรวจสอบว่าไฟล์นั้นมีอยู่แล้วในโฟลเดอร์ "อัพโหลด" หรือไม่ ถ้าเป็นเช่นนั้น ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น และ $uploadOk ถูกตั้งค่าเป็น 0:

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

จำกัดขนาดไฟล์

ฟิลด์อินพุตไฟล์ในรูปแบบ HTML ด้านบนของเรามีชื่อว่า "fileToUpload"

ตอนนี้ เราต้องการตรวจสอบขนาดของไฟล์ หากไฟล์มีขนาดใหญ่กว่า 500KB ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น และ $uploadOk ถูกตั้งค่าเป็น 0:

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

จำกัดประเภทไฟล์

รหัสด้านล่างอนุญาตให้ผู้ใช้อัปโหลดไฟล์ JPG, JPEG, PNG และ GIF เท่านั้น ไฟล์ประเภทอื่นๆ ทั้งหมดจะแสดงข้อความแสดงข้อผิดพลาดก่อนตั้งค่า $uploadOk เป็น 0:

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

อัปโหลดไฟล์สคริปต์ PHP ให้เสร็จสมบูรณ์

ไฟล์ "upload.php" ที่สมบูรณ์ตอนนี้มีลักษณะดังนี้:

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

// Check if image file is a actual image or fake image
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;
  }
}

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>

อ้างอิงระบบไฟล์ PHP ที่สมบูรณ์

สำหรับการอ้างอิงที่สมบูรณ์ของฟังก์ชันระบบไฟล์ ให้ไปที่การ อ้างอิงระบบไฟล์ PHP ทั้งหมด ของ เรา