หมวดหมู่: PHP

PHP: การอัพโหลดไฟล์หลายไฟล์PHP: การอัพโหลดไฟล์หลายไฟล์

อ่านก่อน PHP: การอัพโหลดไฟล์
การอัพโหลดครั้งละหลายไฟล์จะเขียนให้ใช้ move_uploaded_file หลาย ๆ บรรทัดก็ได้ครับ แต่คนมาแก้ที่หลังจะบอกว่า “ถึก”
ก่อนอื่นแก้ส่วนของฟอร์มให้ส่งได้ครั้งละหลาย ๆ ไฟล์ก่อน

<form action="uploading.php" method="post" enctype="multipart/form-data">
<br /><input type="file" name="pictures[]" />
<br /><input type="file" name="pictures[]" />
<br /><input type="file" name="pictures[]" />
<br /><input type="file" name="pictures[]" />
<br /><input type="file" name="pictures[]" />
<input type="submit" />
</form>


สังเกตดู picture โดนเติม s และมี [] เพิ่มขึ้นมา อันนี้เพื่อบอกว่า pictures เป็นอาร์เรย์ มีพรรคพวก ไม่ได้ตัวคนเดียวแล้วนะ
ไฟล์ uploading.php

if (isset ($_FILES['pictures'])) {
 foreach ($_FILES['pictures']['error'] as $index => $value) {
 if ($value == UPLOAD_ERR_OK) {
 move_uploaded_file ($_FILES['pictures']['tmp_name'][$index] ,'uploads/'.$_FILES['pictures']['name'][$index]) ;
 }
 }
}

เราใช้ foreach ทำงานที่ซ้า ๆ ให้ สังเกตว่า $_FILES[‘pictures’] จะมี [$index] เพิ่มขึ้นมา อันนี้คือดัชนีที่จะบอกว่า เรากำลังทำงานกับ pictures ตัวที่เท่าไหร่
เงื่อนไข $value == UPLOAD_ERR_OK ทำหน้าที่ตรวจดูว่า pictures อัพโหลดไฟล์ขึ้นมาหรือว่างเปล่า
ดูเพิ่มเติม