เมื่อ codeigniter ไม่รับรูปจาก flash upload

เมื่อ codeigniter ไม่รับรูปจาก flash upload

พอดีว่าต้องทำ multiple upload image ก็คือตัว upload รูปแบบทีละหลายๆรูปในครั้งเดียวนั่นล่ะ เลือกไปมาสุดท้าย ก็เลือกใช้ uploadify เอามา plug กับ Codeigniter แต่แล้วปัญหาก็เกิดเพราะว่าอยู่ดีๆก็ upload ไม่ขึ้น

ทั้งๆที่เช็คแล้ว ว่า function ที่ใช้ upload ของ CI ใช้งานได้เพราะว่า ตัวนี้ใช้ในส่วนอื่น ยังทำงานได้ปกติ รวมทั้งตัว uploadify ก็ทำงานได้ปกติดี 

งมอยู่หลายชั่วโมง คิดรอบๆหมดแล้ว จนในที่สุด ตัดสินใจเข้าไปแกะ library upload ของ CI ดู ว่ามันเป็นยังไงหว่า

หลังจากที่เริ่มแกะ ก็ยัง งมอยู่นาน แต่ก็พยายามตีกรอบลงมาเรื่อยๆ

ในที่สุดก็ค้นพบว่า การที่ upload ผ่าน flash เข้ามานั้น ระบบมันจะ เช็ค file type ได้เป็น application/octet-stream

ซึ่งแน่นอนที่สุด การ upload ของ CI นั้นถ้าเป็นรูป ก็จะยอมได้แต่เพียง 

 'gif' => 'image/gif',
 'jpeg' => array('image/jpeg', 'image/pjpeg'),
 'jpg' => array('image/jpeg', 'image/pjpeg'),
 'jpe' => array('image/jpeg', 'image/pjpeg'),
 'png' => array('image/png',  'image/x-png'),

เท่านั้น (อันนี้เอามาจาก application/config/mimes.php )

เมื่อได้ถึงบางอ้อนั้นแล้ว ก็คิดจะไป modify header ใน flash แต่อนิจจา มันดันไม่มี flash source อีก คิดไปมาก็เลยถาม google ดีกว่า ว่าไอเรื่อง mime type นี่มันยังไงเนี่ย สุดท้าย ก็ได้ความมาว่าให้เปลี่ยน mime type เพื่อให้รองรับ เป็นดังนี้

 'gif'    =>    array('image/gif', 'application/octet-stream'),
 'jpeg'    =>    array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
 'jpg'    =>    array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
 'jpe'    =>    array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
 'png'    =>    array('image/png',  'image/x-png', 'application/octet-stream'),

เท่านี้ก็ผ่านแบบเนียนๆเลย

กว่าจะได้.... งมประมาณ 3 ชั่วโมงได้ เสียเวลาจริงๆ

 

 

Create: Modify : 2010-04-15 23:24:00 Read : 5450 URL :