move_uploaded_file(ไฟล์ที่จะย้าย, ปลายทางที่เก็บไฟล์)
การอัพโหลดไฟล์ต้องวางอินพุตอัพโหลดไฟล์ดังนี้
<form>
<input type="file" name="image" id="image" />
<input id="submit" name="sunmit" type="submit" value="submit"/>
</form>
ตัวแปร $_FILE
- เป็นตัวแปรชนิดอาร์เรย์แบบ Key/Value ใช้ในการจัดการข้อมูลที่ถูกโหลดมาในเซิร์ฟเวอร์ ได้แก่
$_FILE['image']['type'] แทนชนิดของไฟล์ที่อัพโหลด เช่น .jpg
$_FILE['image']['size'] แทนขนาดของไฟล์
$_FILE['image']['tmp_name'] แทนตำแหน่งไดเรกทอรีที่เก็บไฟล์ไว้ชั่วคราว
$_FILE['image']['name'] แทนชื่อไฟล์ที่อัพโหลด
$_FILE['image']['error'] แทนข้อมูลที่ผิดพลาดจากการอัพโหลด โดยมีการคืนค่าดังนี้
คืนค่า 0 แสดงว่าไม่มีข้อผิดพลาด
คืนค่า 1 ไฟล์ที่อัพโหลดมีขนาดเกินกว่าค่าที่กำหนดใน php.ini ปกติ2 MB
คืนค่า 2 ไฟล์มีขนาดเกินค่าที่กำหนดใน MAX_FILE_SIZE ของฟอร์ม
คืนค่า 3 ข้อผิดพลาดในการสื่อสารทำให้อัพโหลดไฟล์ไม่ได้
คืนค่า 4 ไม่มีไฟล์
//image คือ ชื่ออินพุตของไฟล์ในฟอร์มที่ใช้อัพโหลด
move_uploaded_file() ใช้ในการเคลื่อนย้ายไฟล์จากไดเรกทอรี่ชั่วคราวไปยังตำแหน่งใหม่ซึ่งเราจะใช้ $_FILE['image']['tmp_name'] ในการอ้างถึงไดเรกทอรี่ชั่วคราว
ส่วนตำแหน่งไดเรกทอรี่ปลายทางถ้าต้องการใช้ชื่อเดิมจะใช้
$_FILE['image']['name']
ถ้าต้องการย้ายไปไดเรกทอรี่อื่นจะใช้
$fileName = mktime(date('H'), date('i'), date('s'),date('m'), date('d'), date('Y')).'.jpg';
//ตั้งชื่อให้กับภาพเพื่อจัดเก็บลงในฐานข้อมูล
move_uploaded_file($_FILE['image']['tmp_name'], '../image/news/'.$fileName);