เนื่องจากปกติเวลาอัพโหลดไฟล์ CodeIgniter จะมี Library Upload ให้เราใ้ช้งานอยู่แล้ว
แต่อยู่ดี ๆ พออัพโหลดขึ้นโฮสต์ปรากฏว่ามันขึ้น Error เตือนแปลก ๆ ทั้ง ๆ ที่รันในเครื่องได้ปกติ
การแสดง Error แบบนี้จริงอยู่เมื่อเข้าไปเช็คไฟล์มันก็สามารถอัพโหลดไฟล์ได้ปกติ แต่ปัญหาคือเมื่อมี Output อะไรบางอย่างแสดงออกมา ถ้าหน้านั้นมีการใช้ Session จะทำให้ไม่สามารถเก็บค่า Session ไำด้
เนื่องจากเหตุผลด้าน Security บางอย่าง ทำให้โฮสต์ต้องปิด Extension บางตัวไป ทำให้ฟังก์ชั่นบางตัวไม่สามารถใช้งานได้ ให้แก้โดยการเติม @ เข้าไปหน้าฟังก์ชั่น escapeshellarg
ดังนั้นเราจำเป็นต้องซ่อน Error ไว้ (เหมือนซ่อนฝุ่นไว้ใต้พรม)
ก่อนอื่นให้เข้าไปที่ system\libraries\Upload.php จากนั้นเปิดไฟล์ขึ้นมา ไปยังบรรทัด 1066
แก้จาก
$cmd = 'file --brief --mime ' . escapeshellarg($file['tmp_name']) . ' 2>&1';
เป็น
$cmd = 'file --brief --mime ' . @escapeshellarg($file['tmp_name']) . ' 2>&1';
จากนั้นอัพโหลดไฟล์ Upload.php ขึ้นโฮสต์ค่ะ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น