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