Upload hình ảnh và file trong CodeIgniter 3x

Bài học này giúp các bạn có thể viết code upload hình ảnh, file, và các file khác trong CodeIgniter 3x bằng thư viện upload
  • 10:03 09/10/2016
  • Kỳ Nhân
  • 0 Bình luận
  • 785

Bài trước mình đã nói phần thêm dữ liệu cơ bản. Phần này sẽ nói tới phần upload hình ảnh, file trong CodeIgniter 3x bằng thư viện có sẵn upload

Trước tiên cần phải load thư viện upload. vào application/controllers/admin/Groups.php tại function __construct sửa thành

function __construct() {
    parent::__construct();        
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['remove_spaces'] = true;
    $config['file_ext_tolower'] = true;        
    $this->load->library('upload', $config);
}

phần cấu hình 1 số thuộc tính khác của library upload các bạn đọc user_guide của CodeIgniter cho rõ nha. allowed_types là các bạn muốn upload file đuôi nào có thể sửa hoặc thêm bớt trong đó.

Lý dó mình load trong function contruct là đễ load 1 lần rồi ta sài cho các hàm edit, create không phải viết lại lần nữa

Tại function create() ta sửa thành

public function create() {              
        $this->data['button_title'] = 'Thêm nhóm';  
        if($this->input->post()) {
            //upload hinh
            $pic_name = '';                
            if($this->upload->do_upload('picture')) {
                $pic_name = $this->upload->file_name;
            }
            $model = [
                'title' => $this->input->post('title'),
                'picture' => $pic_name,
                'hide' => $this->input->post('hide'),    
                'create_at' => time(),
            ];
            if($this->db->insert('groups',$model)) {            
                redirect('admin/groups/','refresh');
            }
            else {
                echo $this->db->error();
            }
        }
        else {
            $this->render('admin/groups/create');
        }
    }

Như vậy chỉ vài dòng code đơn giản đã xử lý xong phần upload hình ảnh. Đây là cái lợi khi sử dụng framework, vì có 1 số hàm được viết sẵn rồi ta chỉ việc sài thôi ^^

Chắc có 1 số bạn sẽ hỏi sao không tạo code xử lý thêm, sửa, xóa trong models? Mình thấy nó ngắn ngọn, nếu tạo ra file models riêng cho từng Controller vậy phức tạp, nhiều file nên cũng không tạo.

- Phần models mình sẽ làm ra 1 file chứa toàn bộ code cần thiết cho trang admin. Các bài sau các bạn sẽ gặp tới.