คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
พบว่ามีปัญหาในการอัพโหลดไฟล์ มีคำเตือนเกี่ยวกับ move_uploaded_file ที่บอกว่าไม่สามารถเปิดไฟล์หรือไม่มีไดเร็กทอรี่นั้นๆ ในตำแหน่งที่กำหนดไว้ได้
ตรวจสอบว่าไดเร็กทอรี่ "doc/" มีอยู่จริงในที่กำหนดหรือไม่ หากไม่มี ให้สร้างไดเร็กทอรี่ "doc/" ในโฟลเดอร์ที่เหมาะสมก่อน หลังจากนั้นลองเรียกใช้ฟังก์ชั่น move_uploaded_file() อีกครั้ง
นอกจากนี้ ควรตรวจสอบว่าชื่อไฟล์ที่อัปโหลดมาไม่มีชื่อเดียวกันกับไฟล์ใดๆ ที่อยู่ในโฟลเดอร์ "doc/" ก่อน โดยเช็คชื่อไฟล์เต็มก่อนแล้วเลือกใช้ชื่อไฟล์ใหม่ที่ไม่ซ้ำกัน เช่น ใช้เลขไอดีของข้อมูลล่าสุด + 1 เป็นต้น
นอกจากนี้ ยังตรวจสอบสิทธิ์ในการเขียนและอ่านไฟล์ของโฟลเดอร์ "doc/" ว่าสามารถเขียนได้หรือไม่ โดยตรวจสอบจากสิทธิ์ที่กำหนดในระบบปฏิบัติการของเซิร์ฟเวอร์ที่รันโปรแกรม
โดยทั่วไปแล้ว โฟลเดอร์ในระบบปฏิบัติการ Windows มักจะมีสิทธิ์เขียนและอ่านไฟล์ต่อเนื่องเมื่อมีการสร้างขึ้นมา แต่ถ้าใช้ระบบปฏิบัติการอื่นๆ อาจต้องตั้งค่าสิทธิ์เองก่อนใช้งานได้
ตรวจสอบว่าไดเร็กทอรี่ "doc/" มีอยู่จริงในที่กำหนดหรือไม่ หากไม่มี ให้สร้างไดเร็กทอรี่ "doc/" ในโฟลเดอร์ที่เหมาะสมก่อน หลังจากนั้นลองเรียกใช้ฟังก์ชั่น move_uploaded_file() อีกครั้ง
นอกจากนี้ ควรตรวจสอบว่าชื่อไฟล์ที่อัปโหลดมาไม่มีชื่อเดียวกันกับไฟล์ใดๆ ที่อยู่ในโฟลเดอร์ "doc/" ก่อน โดยเช็คชื่อไฟล์เต็มก่อนแล้วเลือกใช้ชื่อไฟล์ใหม่ที่ไม่ซ้ำกัน เช่น ใช้เลขไอดีของข้อมูลล่าสุด + 1 เป็นต้น
นอกจากนี้ ยังตรวจสอบสิทธิ์ในการเขียนและอ่านไฟล์ของโฟลเดอร์ "doc/" ว่าสามารถเขียนได้หรือไม่ โดยตรวจสอบจากสิทธิ์ที่กำหนดในระบบปฏิบัติการของเซิร์ฟเวอร์ที่รันโปรแกรม
โดยทั่วไปแล้ว โฟลเดอร์ในระบบปฏิบัติการ Windows มักจะมีสิทธิ์เขียนและอ่านไฟล์ต่อเนื่องเมื่อมีการสร้างขึ้นมา แต่ถ้าใช้ระบบปฏิบัติการอื่นๆ อาจต้องตั้งค่าสิทธิ์เองก่อนใช้งานได้
แสดงความคิดเห็น
รบกวนผู้รู้ใจดี ช่วยดูให้หน่อยได้มั้ยคะ ว่าผิดตรงไหนของโค้ด :)
Warning: move_uploaded_file(doc/1-WhatsApp Image 2023-02-28 at 02.04.40.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs\subconinfo\user\save_subcon.php on line 38
Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php220D.tmp' to 'doc/1-WhatsApp Image 2023-02-28 at 02.04.40.jpg' in C:\xampp\htdocs\subconinfo\user\save_subcon.php on line 38
ส่วนนี้คือโค้ดเต็มค่ะ
<?php
//check if form is submitted
if (isset($_POST['submit']))
{
include "config.php";
$name = $_POST['fname'];
$notel = $_POST['notel'];
$nmasyarikat = $_POST['nmasya'];
$nopendsya = $_POST['pendsya'];
$lokasi1=implode(' ',$_POST['lokasi']);
$skop1=implode(' ',$_POST['sk']);
$nota = $_POST['nota'];
$kmhr1=implode(' , ',$_POST['kmhr']);
$filename = $_FILES['filename']['name'];
//upload file
if($filename != '')
{
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$allowed = ['pdf', 'txt', 'doc', 'docx', 'png', 'jpg', 'jpeg', 'gif', 'excel', 'mp4'];
//check if file type is valid
if (in_array($ext, $allowed))
{
// get last record id
$sql = 'select max(id) as id from information';
$query_sql = mysqli_query($link, $sql);
if (count($query_sql) > 0)
{
$row = mysqli_fetch_array($query_sql);
$filename = ($row['id']+1) . '-' . $filename;
}
else
$filename = '1' . '-' . $filename;
//set target directory
$path = 'doc/';
move_uploaded_file($_FILES['filename']['tmp_name'],($path . $filename));
// insert file details into database
$sql = "INSERT INTO information(id,name,notel,nmasyarikat,nopendsya,lokasi,skop,pekerja,kemahiran,document)
VALUES(NULL,'$name','$notel','$nmasyarikat','$nopendsya','$lokasi1','$skop1','$kmhr1','$filename')";
$query_sql=mysqli_query($link,$sql);
if($query_sql){
//noti after submit and go to main page
echo "<script>
window.location.href='subcon.php';
alert('Matlumat anda telah disimpan. Terima Kasih');
</script>";
}
else{
echo mysqli_connect_error($link);
echo'<script>alert("Failed To Insert")</script>';
}
}
else
{
header("Location: subcon.php?st=error");
}
}
else
header("Location: subcon.php");
}
?>
รบกวนหน่อยนะคะ ขอบคุณมากๆค่ะ