Devdit
 

PHP อัปโหลดไฟล์ ลงฐานข้อมูล MySQL

2.7K

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. กรณีอัปโหลดไฟล์ และเพิ่มข้อมูลสำเร็จจะขึ้นข้อความว่า "อัปโหลดไฟล์ลงฐานข้อมูลเรียบร้อย"

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ