ขั้นตอนแรก จะเป็นการสร้าง form HTML อย่างง่ายที่สามารถใช้ในการอัปโหลดไฟล์รูปภาพ
โค้ด: เลือกทั้งหมด
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>File Upload Form</title>
</head>
<body>
<form action="upload-manager.php" method="post" enctype="multipart/form-data">
<h2>Upload File</h2>
<label for="fileSelect">Filename:</label>
<input type="file" name="photo" id="fileSelect">
<input type="submit" name="submit" value="Upload">
<p><strong>Note:</strong> Only .jpg, .jpeg, .gif, .png formats allowed to a max size of 5 MB.</p>
</form>
</body>
</html>
โค้ดตัวอย่างดังนี้
โค้ด: เลือกทั้งหมด
<?php
// ตรวจสอบการ submit ของ form
if($_SERVER["REQUEST_METHOD"] == "POST"){
//ตรวจสอบถ้าไฟล์ที่อัพโหลดไม่มีปัญหา errors
if(isset($_FILES["photo"]) && $_FILES["photo"]["error"] == 0){
//สร้างตัวแปรและกำหนดนามสกุลไฟล์ที่รองรับ jpg,jpeg,gif,png
$allowed = array("jpg" => "image/jpg", "jpeg" => "image/jpeg", "gif" => "image/gif", "png" => "image/png");
$filename = $_FILES["photo"]["name"];
$filetype = $_FILES["photo"]["type"];
$filesize = $_FILES["photo"]["size"];
// Verify file extension
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!array_key_exists($ext, $allowed)) die("Error: Please select a valid file format.");
// กำหนด maximum ของ file size - 5MB
$maxsize = 5 * 1024 * 1024;
if($filesize > $maxsize) die("Error: File size is larger than the allowed limit.");
// ตรวจสอบนามสกุลไฟล์ ถ้ารองรับ
if(in_array($filetype, $allowed)){
// ตรวจว่ามีไฟล์นี้หรือชื่อนี้ในเซิฟเวอร์แล้วหรือยัง
if(file_exists("upload/" . $filename)){
echo $filename . " is already exists.";
} else{
move_uploaded_file($_FILES["photo"]["tmp_name"], "upload/" . $filename);
echo "Your file was uploaded successfully.";
}
} else{
//ถ้าไม่สามารถอัพโหลดได้
echo "Error: There was a problem uploading your file. Please try again.";
}
} else{
echo "Error: " . $_FILES["photo"]["error"];
}
}
?>
และอาเรย์นี้สามารถแตกย่อยไปหลายตัว แต่ละตัวมีความหมายที่แตกต่างกัน :
$_FILES["photo"]["name"]- สำหรับระบุชื่อดั้งเดิมของไฟล์รวมถึงนามสกุลไฟล์
$_FILES["photo"]["type"] - สำหรับระบุประเภท MIME ของไฟล์หรือ นามสกุลไฟล์
$_FILES["photo"]["size"] - สำหรับนี้ระบุขนาดไฟล์เป็นไบต์
$_FILES["photo"]["tmp_name"] - สำหรับระบุชื่อรวมถึงตำแหน่งที่กำหนดให้เก็บไฟล์เมื่ออัปโหลดไปยังเซิร์ฟเวอร์แล้ว
$_FILES["photo"]["error"] - สำหรับ ระบุข้อผิดพลาดหรือรหัสสถานะที่เกี่ยวข้องกับการอัปโหลดไฟล์ เช่นจะเป็น 0 หากไม่มีข้อผิดพลาด
ตัวอย่าง โค้ด php เพื่อดูรายละเอียดของไฟล์ที่ถูกอัพโหลด
โค้ด: เลือกทั้งหมด
<?php
if($_FILES["photo"]["error"] > 0){
echo "Error: " . $_FILES["photo"]["error"] . "<br>";
} else{
echo "File Name: " . $_FILES["photo"]["name"] . "<br>";
echo "File Type: " . $_FILES["photo"]["type"] . "<br>";
echo "File Size: " . ($_FILES["photo"]["size"] / 1024) . " KB<br>";
echo "Stored in: " . $_FILES["photo"]["tmp_name"];
}
?>
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : PHP Programming
-สอนการใช้งาน PHP
-ถาม-ตอบ การใช้งาน php
-บทเรียน php พื้นฐาน