คลังเก็บบล็อก

ตัวอย่างการอัพโหลดไฟล์โดยใช้พีเอชพี : หลายไฟล์


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

<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 (บอกว่ามีมากกว่า 1 อันนี้ไม่บังคับ เป็นแค่หลักการตั้งชื่อที่ดี) และมี [] เพิ่มขึ้นมา อันนี้เพื่อบอกว่า 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 อัพโหลดไฟล์ขึ้นมาหรือว่างเปล่า
ดูเพิ่มเติม

โฆษณา
%d bloggers like this: