PHP อัปโหลดไฟล์ ลงฐานข้อมูล MySQL หรือ MariaDB บทความนี้สอนการสร้างฟอร์ม HTML เพื่อเลือกไฟล์ชนิดต่างๆ และอัปโหลดไฟล์ดังกล่าวเข้า Server และเก็บชื่อไฟล์ที่อัปโหลดลงฐานข้อมูล สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง ตาราง test ประกอบด้วย 2 columns คือ id และ file
+-------+-----------+
| Field | Type |
+-------+-----------+
| id | int(11) |
| file | char(255) |
+-------+-----------+
ตัวอย่าง PHP อัปโหลดไฟล์ ลงฐานข้อมูล
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST" enctype="multipart/form-data">
กรุณาเลือกไฟล์ <input type="file" name="file"><br/>
<input type="submit" value="อัปโหลดไฟล์">
</form>
<?php
isset( $_FILES['file']['tmp_name'] ) ? $file_tmp_name = $_FILES['file']['tmp_name'] : $file_tmp_name = "";
isset( $_FILES['file']['name'] ) ? $file_name = $_FILES['file']['name'] : $file_name = "";
if( !empty( $file_tmp_name ) && !empty( $file_name ) ) {
if( move_uploaded_file( $file_tmp_name, $file_name ) ) {
$c = mysqli_connect( "localhost", "root", "", "demo" );
$sql = " INSERT INTO test (id, file) VALUE (NULL, '{$file_name}') ";
$q = mysqli_query( $c, $sql );
mysqli_close( $c );
if( $q ) {
echo "อัปโหลดไฟล์ลงฐานข้อมูลเรียบร้อย";
}
}
}
?>
ผลลัพธ์
อัปโหลดไฟล์ลงฐานข้อมูลเรียบร้อย
1. PHP อัปโหลดไฟล์ ลงฐานข้อมูล MySQL หรือ MariaDB จากตัวอย่างสร้างฟอร์ม HTML พร้อม input file สำหรับเลือกไฟล์ตัวแปรชื่อ file และปุ่มอัปโหลดไฟล์
2. เมื่อมีการอัปโหลดไฟล์เข้ามาจะรับตัวแปรจากฟอร์ม และสร้างตัวแปรใหม่ 2 ตัวคือ file_tmp_name เก็บตำแหน่งที่อยู่ของไฟล์ และ file_name เก็บชื่อของไฟล์
3. ใช้คำสั่ง move_uploaded_file เพื่ออัปโหลดไฟล์เข้า Server
4. เชื่อมต่อฐานข้อมูลชื่อ demo และเพิ่มชื่อไฟล์ลงตาราง test ด้วยคำสั่ง INSERT INTO
5. กรณีอัปโหลดไฟล์ และเพิ่มข้อมูลสำเร็จจะขึ้นข้อความว่า "อัปโหลดไฟล์ลงฐานข้อมูลเรียบร้อย"