Devdit
 

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

2.4K

PHP อัปโหลดรูป ลงฐานข้อมูล MySQL บทความนี้สอนการเขียนโค้ดให้ผู้ใช้งานเลือกไฟล์ และอัปโหลดรูปที่เลือกลงฐานข้อมูล MySQL โดยจะมีการเก็บชื่อไฟล์ที่ถูกอัปโหลดลงในตาราง test สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง ตารางชื่อ test ประกอบด้วย column id และ file

+-------+-----------+
| Field | Type      |
+-------+-----------+
| id    | int(11)   |
| file  | char(255) |
+-------+-----------+

 

ตัวอย่าง PHP อัปโหลดรูป ลงฐานข้อมูล MySQL

<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST" enctype="multipart/form-data">
    กรุณาเลือกไฟล์รูปภาพ <input type="file" name="image" accept="image/png, image/gif, image/jpeg"><br/>
    <input type="submit" value="อัปโหลดไฟล์รูปภาพ">
</form>
<?php
    isset( $_FILES['image']['tmp_name'] ) ? $image_tmp_name = $_FILES['image']['tmp_name'] : $image_tmp_name = "";
    isset( $_FILES['image']['name'] ) ? $image_name = $_FILES['image']['name'] : $image_name = "";
    if( !empty( $image_tmp_name ) && !empty( $image_name ) ) {
        if( move_uploaded_file( $image_tmp_name, $image_name ) ) {
            $c = mysqli_connect( "localhost", "root", "", "demo" );
            $sql = " INSERT INTO test (id, file) VALUE (NULL, '{$image_name}') ";
            $q = mysqli_query( $c, $sql );
            mysqli_close( $c );
            if( $q ) {
                echo "อัปโหลดรูปภาพลงฐานข้อมูลเรียบร้อย";
            }
        }
    }
?>

ผลลัพธ์

อัปโหลดรูปภาพลงฐานข้อมูลเรียบร้อย

คำอธิบาย

1. PHP อัปโหลดรูป ลงฐานข้อมูล MySQL สร้างฟอร์มร่วมกับ input file ตัวแปรชื่อ image โดยกำหนด attribute accept ให้รองรับเฉพาะไฟล์รูปภาพเท่านั้น

2. เมื่อผู้ใช้งานเลือกรูปภาพ และกดปุ่ม submit ตัวแปร image จะถูกส่งมาที่ PHP โดยจะมีการรับค่าตัวแปร และสร้างตัวแปรเพิ่มขึ้นมา 2 ตัว คือ image_tmp_name และ image_name

3. ตัวแปร image_tmp_name เก็บตำแหน่งที่อยู่ของรูปภาพที่จะอัปโหลด ส่วนตัวแปร image_name เก็บชื่อรูปภาพที่จะอัปโหลด

4. ใช้คำสั่ง move_uploaded_file เพื่ออัปโหลดรูปภาพเข้า Server

5. เชื่อมต่อกับฐานข้อมูล demo และใช้คำสั่ง INSERT INTO เพื่อบันทึกชื่อรูปภาพลงในตาราง test

6. กรณีอัปโหลดรูปภาพ และบันทึกข้อมูลเรียบร้อยจะแสดงข้อความว่า "อัปโหลดรูปภาพลงฐานข้อมูลเรียบร้อย"

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