Up Load File
การอัปโหลด เราต้องอัปโหลด ผ่าน ฟอร์มครับ โดยเราต้องกำหนด content types ให้กับฟอร์ม เป็น enctype="multipart/form-data" เช่น
<form method="post" action="post.php" enctype="multipart/form-data"></form>
ดูตัวอย่างกันเลย สำหรับฟอร์มส่งไฟล์
<form method="post" action="upload.php" enctype="multipart/form-data" target=_blank>
เมล์ : <input type="text" name="email" size="33">
ไฟล์ : <input type="file" name="fileupload" size="33">
<input type=submit value="ส่ง" name="submit">
</form>
เมล์ : <input type="text" name="email" size="33">
ไฟล์ : <input type="file" name="fileupload" size="33">
<input type=submit value="ส่ง" name="submit">
</form>
จากตัวอย่าง เราสามารถใช้ร่วมกับ input ชนิดอื่นๆได้ ใน form เดียวกัน
สำหรับโค้ดในการรับค่าจากฟอร์ม มีโค้ดดังนี้ (ตามตัวอย่าง upload.php)
$email=$_POST["email];
$fileupload=$_FILES["fileupload];
if (isset($email)) echo $email."<br />";
if ($fileupload[name]!="") {
echo "มีไฟล์แนบมาด้วย<br />";
echo "ชื่อไฟล์ (<font color=green>name</font>) <font color=red>$fileupload[name]</font> ชื่อไฟล์ที่อัปโหลดมา เราใช้ค่านี้ในการตรวจสอบว่ามีไฟล์ส่งมาหรือไม่<br />";
echo "ขนาด (<font color=green>size</font>) <font color=red>$fileupload[size]</font> ไบต์ ตรวจสอบขนาดไฟล์ที่จะอัปโหลด ที่นี่<br />";
echo "ชนิดของไฟล์ (<font color=green>type</font>) <font color=red>$fileupload[type] </font>สามารถใช้ค่านี้ในการตรวจสอบชนิดของไฟล์ที่ต้องการได้<br />";
echo "ไฟล์ที่อัปโหลด (<font color=green>tmp_name</font>) <font color=red>$fileupload[tmp_name]</font> สำหรับการเรียกใช้ฟังก์ชี่น copy<br />";
} else echo "ไม่มีไฟล์ส่งมาด้วย.";
$fileupload=$_FILES["fileupload];
if (isset($email)) echo $email."<br />";
if ($fileupload[name]!="") {
echo "มีไฟล์แนบมาด้วย<br />";
echo "ชื่อไฟล์ (<font color=green>name</font>) <font color=red>$fileupload[name]</font> ชื่อไฟล์ที่อัปโหลดมา เราใช้ค่านี้ในการตรวจสอบว่ามีไฟล์ส่งมาหรือไม่<br />";
echo "ขนาด (<font color=green>size</font>) <font color=red>$fileupload[size]</font> ไบต์ ตรวจสอบขนาดไฟล์ที่จะอัปโหลด ที่นี่<br />";
echo "ชนิดของไฟล์ (<font color=green>type</font>) <font color=red>$fileupload[type] </font>สามารถใช้ค่านี้ในการตรวจสอบชนิดของไฟล์ที่ต้องการได้<br />";
echo "ไฟล์ที่อัปโหลด (<font color=green>tmp_name</font>) <font color=red>$fileupload[tmp_name]</font> สำหรับการเรียกใช้ฟังก์ชี่น copy<br />";
} else echo "ไม่มีไฟล์ส่งมาด้วย.";
หลังจากการตรวจสอบว่ามีการส่งไฟล์มาด้วยหรือไม่แล้ว หากต้องการ อัพโหลดไฟล์ ใช้โค้ด
copy($fileupload[tmp_name], "path\to\filename");
path\to คือเส้นทางสำหรับไดเร็คทอรี่ปลายทางที่อัพโหลดไฟล์ ส่วน filename เราอาจใช้ชื่อเดิมคือ $fileupload[name]] หรือจะสร้างชื่อใหม่ก็ได้
หรือหากต้องการตรวจสอบขนาดของไฟล์ก่อน ก็ให้ตรวจสอบได้จากค่าของ $fileupload[size]
หรือหากต้องการตรวจสอบชนิดของไฟล์ก่อน ก็ให้ตรวจสอบได้จากค่าของ $fileupload[type]
การอัปโหลดไฟล์ขนาดใหญ่
โดยปกติขนาดของไฟล์ที่ PHP ยอมให้ Upload ได้ จะเป็น 2 Mb ซึ่งถูกกำหนดไว้ใน php.ini ที่ตัวแปรชื่อ upload_max_filesize ซึ่งเราสามารถเข้าไปเปลี่ยนค่าเพื่อให้สามารถ อัพโหลดไฟล์ที่มีขนาดใหญ่ขึ้นได้
02 เมย. 2551

