Devdit
 

PHP upload file หลายไฟล์ เข้า Server พร้อมกัน

2.3K

PHP upload file หลายไฟล์ เข้า Server พร้อมกัน บทความนี้สอนการสร้างฟอร์ม upload file หลายไฟล์ ด้วย input file ตัวแปรชนิด array และกำหนด attribute multiple เพื่อให้เลือกไฟล์ได้หลายไฟล์พร้อมกัน สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง PHP upload file หลายไฟล์ เข้า Server พร้อมกัน

<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST" enctype="multipart/form-data">
    กรุณาเลือกไฟล์ <input type="file" name="file[]" multiple><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 = "";
    $counter = 1;
    if( !empty( $file_tmp_name ) && !empty( $file_name ) ) {
        for( $i=0; $i<count( $file_tmp_name ); $i++ ) {
            if( move_uploaded_file( $file_tmp_name[$i], $file_name[$i] ) ) {
                echo "อัปโหลดไฟล์ที่ {$counter} เข้า Server เรียบร้อย<br/>";
                $counter++;
            }
        }
    }
?>

ผลลัพธ์

อัปโหลดไฟล์ที่ 1 เข้า Server เรียบร้อย
อัปโหลดไฟล์ที่ 2 เข้า Server เรียบร้อย
อัปโหลดไฟล์ที่ 3 เข้า Server เรียบร้อย
อัปโหลดไฟล์ที่ 4 เข้า Server เรียบร้อย

คำอธิบาย

1. PHP upload file หลายไฟล์ เข้า Server พร้อมกันเริ่มจากสร้างฟอร์ม ร่วมกับ input file ตัวแปรชื่อ file[] ชนิด array และกำหนด attribute multiple เพื่อให้รองรับการ upload file หลายไฟล์

2. รับตัวแปร file พร้อมสร้างตัวแปร 2 ตัว คือ file_tmp_name  และ file_name เพื่อใช้สำหรับอัปโหลดไฟล์เข้า Server

3. ใช้คำสั่ง for วนลูปเท่ากับจำนวนไฟล์ที่ผู้ใช้งานเลือก ด้วยคำสั่ง count ตัวแปร file_tmp_name 

4. ภายใน for ใช้คำสั่ง move_uploaded_file เพื่ออัปโหลดไฟล์เข้า Server

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