A-AA+then

การอัปโหลดไฟล์ จะสำเร็จหรือไม่นั้น ขึ้นอยู่กับ 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" target=_blank>
เมล์ : <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 "ไม่มีไฟล์ส่งมาด้วย.";

หลังจากการตรวจสอบว่ามีการส่งไฟล์มาด้วยหรือไม่แล้ว หากต้องการ อัพโหลดไฟล์ ใช้โค้ด

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 ซึ่งเราสามารถเข้าไปเปลี่ยนค่าเพื่อให้สามารถ อัพโหลดไฟล์ที่มีขนาดใหญ่ขึ้นได้

Relate

^