GORAGOD.com

GORAGOD.com

freelance, web developer, web designer, hosting, domain name

ตัวอย่างการสร้างฟอร์มสำหรับอัปโหลดไฟล์

การอัปโหลดไฟล์ จะสำเร็จหรือไม่นั้น ขึ้นอยู่กับ Server ด้วยนะครับว่ายอมให้อัปโหลดหรือไม่ Server ฟรีบางแห่งอาจไม่ยอมให้มีการอัปโหลดก็อดไปครับ ในหัวข้อนี้ผมจะ รวบรวมคำถามที่ถูกถามบ่อยๆ เกี่ยวกับการอัปโหลดมาไว้ที่นี่ครับ

การอัปโหลด เราต้องอัปโหลด ผ่าน ฟอร์มครับ โดยเราต้องกำหนด 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">
เมล์ : <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)

<?php
$email = $_POST["email]; 
$fileupload = $_FILES["fileupload];
  
if (!empty($email)) {
  echo $email."<br />";
}
if ($fileupload['tmp_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 />";
  // สำเนาไฟล์อัปโหลดไปเก็บยังปลายทาง ในชื่อ filename
  //copy($fileupload['tmp_name'], "path/to/filename");
} 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 ซึ่งเราสามารถเข้าไปเปลี่ยนค่าเพื่อให้สามารถ อัพโหลดไฟล์ที่มีขนาดใหญ่ขึ้นได้
0SHAREFacebookLINE it!
^