แก้ปัญหา JPEG library reports unrecoverable error

JPEG library reports unrecoverable error
Error ตัวนี้มักจะเจอเวลาเราเรียกใช้งานพวก imagecreatefromjpeg อย่างเช่นเวลาเราต้องการที่จะสร้าง thumbnail เล็กๆ หรือว่า resize รูปภาพ

ต้นตอของปัญหาคือ ไฟล์เดิมเป็น .png แต่เรานี่ล่ะดันทะลึ่งไปเปลี่ยนนามสกุลมันเป็น .jpg หรือ .jpeg เองซะงั้น

ทีนี้พออัพโหลดไฟล์ขึ้นมาบนเซิฟเวอร์ Mime type ที่ได้มันจะไม่ใช่ image/png น่ะสิ แต่กลายเป็น image/jpeg ทีนี้พอเข้าเงื่อนไขที่เช็ก ก็ไปกันใหญ่เลย

วิธีเช็กเบื้องต้นสามารถเช็กได้จาก getimagesize ครับ
โดยเช็กจาก index ตัวที่ 2 มันจะคืนค่ามาเป็น
1(IMAGETYPE_GIF)
2(IMAGETYPE_JPEG)
3(IMAGETYPE_PNG)
ฯลฯ

เช่น
$info = getimagesize("test/test.jpg");
if($info['2']==IMAGETYPE_PNG){
  echo "real mime type is png";
}



อ้างอิง

Comments