ผมเป็นคนหนึงที่ชื่นชอบ PHP Framework โดยหยิบเอาตัว Codeigniter มาใช้เป็นตัวแรก และก็ติดใจ ลองๆ ใช้ไปก็พบว่าเจ้าระบบอัพโหลดไฟล์ที่มีมาให้นั้น ยังไม่ค่อยครบครันเท่าไหร่ เพราะเขียนปกติจะใช้ Library upload ของ Verot อัพโหลด เพราะว่า Class นี้ค่อนข้างครบในตัวเองอยู่แล้ว มีตัวจัดการไฟล์เกือบหมด ทั้งรูปภาพ และไฟล์อื่นๆ
ขั้นตอนการนำ Library เข้ามาใช้งานปกติแล้ว Codeigniter มีกฎว่าจะต้องทำการโหลด Library เข้ามายังหน้า Controller ก่อนแต่ตัว Library upload นี้อยู่ในรูปแบบ Construct คือประกาศแล้วใช้งานเลย แถมยังกำหนดให้เรียกหาค่าของไฟล์ที่อัพโหลดทันที ซึ่งการที่จะใช้งานสามารถทำได้ โดยการสร้าง Library อีกตัวมาเรียกใช้งาน Library ตัวนี้
สร้างไฟล์ Library ผมตั้งชื่อว่า myupload.php เก็บไว้ที่ application/libraries/ และเก็บตัว Library upload ของ Verot ไว้ที่เดียวกัน เพื่อให้ง่ายต่อการเรียกใช้งาน
require_once(APPPATH.'libraries/class.upload/class.upload.php'); class MyUpload extends upload{ public function MyUpload(){ } }
จากนั้นก็โหลดใช้งานได้จาก Controller ที่เราต้องการใช้งาน แบบนี้
$this->load->library('MyUpload');
ทีนี้เราก็จะสามารถใช้งาน Library ตัวได้แล้วครับ ซึ่งการใช้งานก็เหมือนที่เคยใช้ปกติครับ ผมมีตัวอย่างการใช้งานคร่าวๆ ครับ ซึ่งในตัวอย่างผมได้เขียน Method เพิ่มใน Library myupload แล้วเรียกใช้งานอีกที
public function imgUploadRatioY($srcFile, $file_dst_path, $file_new_name, $file_new_ext, $width){ $this->upload($srcFile); if($this->uploaded){ if($this->file_is_image){ if($this->file_src_size < 2048000){ $this->file_new_name_body = $file_new_name; $this->file_new_name_ext = $file_new_ext; $this->image_resize = TRUE; $this->file_force_extension = TRUE; $this->image_x = $width; $this->image_ratio_y = TRUE; $this->process($file_dst_path); if($this->processed){ return $this->uploadFile = $this->file_dst_name; }else{ return $this->error = 'เกิดความผิดพลาดกรุณาลองใหม่'; } }else{ return $this->error = 'ไฟล์มีขนาดใหญ่เกิน 2 MB'; } }else{ return $this->error = 'กรุณาใช้ไฟล์รูปภาพเท่านั้น'; } } }
เวลาใช้งานเราก็เรียกแบบนี้เลยครับ ^ ^
if(!empty($_FILES['emag_cover']['tmp_name'])){ $upload = $this->myupload->imgUploadRatioY($_FILES['emag_cover'], $path, $newFileName, 'gif', 150); }else{ $upload = ''; $this->myupload->error = ''; }
เพียงเท่านี้เราก็จะสามารถใช้งาน Library Upload ของ Verot ได้แล้วครับ
ความคิดเห็น
แสดงความคิดเห็น