ต้องการใช้คำสั่ง move_uploaded_file เพื่ออัปโหลดไฟล์ลง folder ที่ต้องการทดสอบแล้วข้อมูลไฟล์มา ทั้ง tmp_name และ name แต่รันแล้วไม่สำเร็จขึ้นข้อความว่า Warning: move_uploaded_file(dir/test.pdf): Failed to open stream: No such file or directory แบบนี้ต้องแก้ไขอย่างไร
<form action="upload.php" method="POST" enctype="multipart/form-data">
กรุณาเลือกไฟล์ <input type="file" name="file"><br/>
<input type="submit" value="อัปโหลด">
</form>
<?php
isset( $_FILES['file']['tmp_name'] ) ? $file_tmp_name = $_FILES['file']['tmp_name'] : $file_tmp_name = "";
isset( $_FILES['file']['name'] ) ? $file_name = $_FILES['file']['name'] : $file_name = "";
if( !empty( $file_tmp_name ) && !empty( $file_name ) ) {
move_uploaded_file($file_tmp_name, "dir/".$file_name);
}
?>
วิธีแก้ไข
แนะนำให้ตรวจสอบว่ามี folder ชื่อ dir อยู่ในตำแหน่งเดียวกับ script php ด้านบนหรือไม่ ปัญหาดังกล่าวหลักๆ เกิดจาก 2 กรณีคือ 1.ไม่มีไฟล์ที่อัปโหลดเข้ามา หรือ 2.ไม่มี folder ปลายทางที่กำหนด เมื่อข้อมูลไฟล์ตรวจสอบแล้วพบว่ามี แนะนำให้ตรวจสอบ folder dir หากไม่มี folder dir ให้สร้าง folder ดังกล่าวก่อนแล้วจึงรันโปรแกรมใหม่อีกครั้ง