สำหรับบทความรู้ในวันนี้ admin ขอนำมาฝากคนที่สนใจศึกษาการเขียนโปรแกรม PHP ในการใช้งาน กับหน่วยงาน หรือองค์กร หรือโปรเจคส่งอาจารย์
ชุดคำสั่งการทำงานของภาษา PHP จะเรียกว่า PHP script โดยจะแทรกในคำสั่งภาษา HTML เพื่อให้ผู้ใช้งานสามารถอัพโหลดไฟล์ ขึ้นไปเก็บที่เครื่องบริการแม่ข่าย Server โดยไฟล์จะถูกเก็บไว้ที่แฟ้มชั่วคราว แล้วค่อยย้ายไปที่เก็บถาวรอีกภายหลังด้วยชุดคำสั่ง PHP
ไฟล์ phpinfo.php จะอธิบายถึงโฟลเดอร์ชั่วคราว ที่จะใช้ในการพักไฟล์ที่อัพมาขั้นแรก upload_tem_dir และขนาดไฟล์มากสุดที่อนุญาตให้อัพได้ ด้วยคำสั่ง upload_max_filesize ซึ่งค่ากำหนดเหล่านี่จะต้องระบุในไฟล์ php.ini
กระบวนการทำงาน
เริ่มจากผู้ใช้งานเปิดเพจ HTML ฟอร์มอัพโหลดไฟล์ มีกล่องข้อความ มีปุ่ม browse เข้าไปเลือกไฟล์ในเครื่อง และปุ่ม อัพโหลด
ผู้ใช้งานคลิก browse เข้าไปเลือกไฟล์ในเครื่องที่ต้องการอัพโหลด เช่น .doc ,.pdf เป็นต้น
เส้นทางไปยังไฟล์ที่อัพโหลดจะแสดงขึ้นมาในช่องข้อความ และคลิกปุ่ม อัพโหลด
ไฟล์จะถูกส่งไปยังโฟลเดอร์ชั่วคราวบนแม่ข่าย
คำสั่งการทำงานภาษา PHP Script จะเริ่มทำงาน ตามที่กำหนดในแบบฟอร์ม action และตรวจสอบการอัพไฟล์ และบันทึกลงแม่ข่ายเรียบร้อย และแสดงข้อความยืนยันการส่งไฟล์ สำเร็จ
สำหรับผู้พัฒนางาน ต้องอนุญาตสิทธิการเขียนไฟล์ write ในโฟลเดอร์ชั่วคราว หรือถาวร ไม่แล้วจะทำงานไม่ได้
สร้างแบบฟอร์มอัพโหลดไฟล์
ตัวอย่างหน้า HTML สร้างหน้าอัพโหลดไฟล์ตัวอย่าง ซึ่งจะใช้วิธี Post และกำหนคำสั่งการควบคุมการทำงานด้วยชุดคำสั่งแบบ enctype (คำสั่งสำหรับเข้ารหัสไฟล์ เพื่อทำให้ไฟล์สามารถส่งผ่านฟอร์มแบบ POST ได้ 2. enctype="multipart/form-data" จะกำหนดไว้ที่แท็ก form ของ HTML และใช้งานร่วมกับ input submit.)
ตัวอย่าง ฟอร์ม HTML
<?php if(isset($_FILES['image'])){ $errors= array(); $file_name = $_FILES['image']['name']; $file_size =$_FILES['image']['size']; $file_tmp =$_FILES['image']['tmp_name']; $file_type=$_FILES['image']['type']; $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); $extensions= array("jpeg","jpg","png"); if(in_array($file_ext,$extensions)=== false){ $errors[]="extension not allowed, please choose a JPEG or PNG file."; } if($file_size > 2097152){ $errors[]='File size must be excately 2 MB'; } if(empty($errors)==true){ move_uploaded_file($file_tmp,"images/".$file_name); echo "Success"; }else{ print_r($errors); } } ?> <html> <body> <form action="" method="POST" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit"/> </form> </body> </html>
เขียน script ภาษา PHP
ค่าตัวแปรชนิด global เรียนว่า $_FILES. ซึ่งจะสร้างตัวแปรที่เกี่ยวข้องในการอัพไฟล์ จำนวน 5 ตัวแปรด้วยกัน คือ $_FILES['file']['tmp_name'] −ไฟล์ที่อัพไปที่แฟ้มชั่วคราวของแม่ข่าย
$_FILES['file']['name'] − ชื่อของไฟล์ที่ถูกอัพโหลด
$_FILES['file']['size'] − ขนาดของไฟล์
$_FILES['file']['type'] −ตัวแปรระบุชนิดของไฟล์
$_FILES['file']['error'] − ค่าความผิดพลาดการทำงาน
<?php if(isset($_FILES['image'])){ $errors= array(); $file_name = $_FILES['image']['name']; $file_size = $_FILES['image']['size']; $file_tmp = $_FILES['image']['tmp_name']; $file_type = $_FILES['image']['type']; $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); $extensions= array("jpeg","jpg","png"); if(in_array($file_ext,$extensions)=== false){ $errors[]="extension not allowed, please choose a JPEG or PNG file."; } if($file_size > 2097152) { $errors[]='File size must be excately 2 MB'; } if(empty($errors)==true) { move_uploaded_file($file_tmp,"images/".$file_name); echo "Success"; }else{ print_r($errors); } } ?> <html> <body> <form action = "" method = "POST" enctype = "multipart/form-data"> <input type = "file" name = "image" /> <input type = "submit"/> <ul> <li>Sent file: <?php echo $_FILES['image']['name']; ?> <li>File size: <?php echo $_FILES['image']['size']; ?> <li>File type: <?php echo $_FILES['image']['type'] ?> </ul> </form> </body> </html>
ليست هناك تعليقات:
إرسال تعليق