Kết quả 1 đến 1 của 1
  1. #1
    Super Moderator tinhphaistc's Avatar
    Ngày tham gia
    01-03-2013
    Bài viết
    693
    Cảm ơn
    244
    Được cảm ơn 278 trong 210 bài viết

    Upload và quản lý image file trong CodeIgniter

    Chào các bạn, hôm nay mình viết 1 ứng dụng nhỏ về việc upload và quản lý file hình trong CI.
    Phiên bản : CI 2.1.0

    Đầu tiên các bạn download CI về rồi tiến hành giải nén bình thường.
    Sau đó, trong thưc mục project gốc của chúng ta các bạn thêm 1 file htaccess rồi thêm vào đoạn code dưới đây:
    Mã:

    Code:
    RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /demo_upload/index.php/$1 [L]
    -- Với đoạn code này mình đã bỏ đi dòng index.php mỗi khi các bạn chạy project trên thanh địa chỉ .
    Vd: "localhost/demo_upload/index.php/demo" -> "localhost/demo_upload/demo".

    Tiếp theo trong thư mục controller, bạn tạo file gallery.php với nội dung:
    PHP Code:
    PHP Code:
     <?php 
    class Gallery extends CI_Controller{
        public function 
    __construct(){    
            
    parent::__construct();
            
    $this->load->helper("url");    
        }
        
        public function 
    index(){
            
    $this->load->model("Mgallery");
            
            if(
    $this->input->post("ok")){
                    
    $this->Mgallery->do_upload();
            }
            
    $data['images'] = $this->Mgallery->get_images();
            
    $this->load->view("gallery_view",$data);    
        }
    }
    tiếp theo bạn tạo file mgallery.php trong thư mục model rồi tiến hành xử lý:
    PHP Code:
    PHP Code:
    <?php
    class Mgallery extends CI_Model{
        protected 
    $_gallery_path "";
        protected 
    $_gallery_url "";
        public function 
    __construct(){
            
    parent::__construct();
            
    //Lấy đường dẫn url của thư mục chứa hình ảnh được upload
            
    $this->_gallery_url base_url()."public/images/";
            
    //Lấy đường dẫn vật lý của thư mục chứa hình ảnh đươc upload
            
    $this->_gallery_path realpath(APPPATH"../public/images");
        }
        
        
    //hàm thực hiện công việc upload và resize lại hình ảnh
        
    public function do_upload(){
            
    $config = array('upload_path'   => $this->_gallery_path,
                            
    'allowed_types' => 'gif|jpg|png',
                            
    'max_size'      => '2000');
            
    $this->load->library("upload",$config);
            if(!
    $this->upload->do_upload("img")){
                
    $error = array($this->upload->display_errors());
            }else{
                
    $image_data $this->upload->data();    
            }
            
    //kết thúc công đoạn upload hình ảnh
            
            
    $config = array("source_image" => $image_data['full_path'],
                            
    "new_image" => $this->_gallery_path "/thumbs",
                            
    "maintain_ration" => true,
                            
    "width" => '150',
                            
    "height" => "100");
            
    $this->load->library("image_lib",$config);
            
    $this->image_lib->resize();
            
    //kết thúc công đoạn resize lại hình ảnh                
        
    }
        
        
        
    //hàm lấy hình ảnh từ thư mục lưu file đã upload
        
    public function get_images(){
            
    $file scandir($this->_gallery_path);
            
    $file array_diff($file, array('.''..''thumbs'));
            
    //tên tất cả các file hình trong thư mục đã được upload lên.
            
            
            
    $images = array();
            foreach(
    $file as $img){
                
    $images[] = array("url"        => $this->_gallery_url $img,
                                  
    "thumb_url" => $this->_gallery_url "thumbs/" $img);    
            }
            return 
    $images;
        }
    }

    cuối cùng bạn show kết quả trên view :
    HTML Code:

    HTML Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Demo Upload and Image in CI</title> 
    <link href="<?php echo base_url();?>public/css/style.css" type="text/css" rel="stylesheet" /> 
    </head>  
    <body> 
    <div id="gallery">     
    <?php if (isset($images)):             foreach($images as $image):    ?>             
    <div class="thumb">                 
    <a href="<?php echo $image['url']; ?>">                     
    <img src="<?php echo $image['thumb_url']; ?>" /></a></div>         
    <?php endforeach; else: ?>             
    <div id="blank_gallery">Please Upload an Image</div>         
    <?php endif; ?> </div> 
    <div id="upload"> 
    <form action="<?php base_url();?>gallery" method="post" enctype="multipart/form-data">        
    <input type="file" name="img" />     <input type="submit" name="ok" value="Upload" />     
    </form> 
    </div> 
    </body> 
    </html>
    ----Trong bài demo này mình ko sử dụng 1 database nào để lưu dữ liệu của các file hình dược upload cả mà thay vào đó mình giới thiệu thêm cho các bạn các hàm scandir & array_diff là những hàm để lấy tên file trong thư mục mà chúng ta đã chỉ định. Mặc dù trong thực tế chúng ta đều phải sữ dụng database để lưu tên các file đã dc upload nhưng vì mục đính học tập thêm kiến thức nên mình giới thiệu thêm cho các bạn Upload và quản lý image file trong CodeIgniter

    P/S: Lần đầu viết tutorial nên còn rất nhiều hạn chế Upload và quản lý image file trong CodeIgniter hy vong nhận dược nhận xét của các bạn để chúng ta ngày cang tiến bo hơn Hehe
    Tập tin đính kèm Tập tin đính kèm
    Sửa lần cuối bởi tinhphaistc; 01-03-2013 lúc 11:59 PM.

  2. The Following 2 Users Say Thank You to tinhphaistc For This Useful Post:

    2webvn.com (27-03-2013),PhanNguyenChuong (15-07-2013)

Chia sẽ và Bình Luận chủ đề Upload và quản lý image file trong CodeIgniter trên facebook

Các Chủ đề tương tự

  1. Trả lời: 12
    Bài cuối: 04-11-2016, 11:51 AM
  2. Vấn đề vòng lặp kiểm tra file upload hợp lệ
    Bởi truongnguyenhd trong diễn đàn Hỏi đáp
    Trả lời: 8
    Bài cuối: 16-02-2014, 11:26 PM
  3. Trả lời: 0
    Bài cuối: 15-11-2013, 11:08 PM
  4. Trả lời: 2
    Bài cuối: 15-11-2013, 08:16 AM
  5. cách upload hàng loạt file lên server
    Bởi Zen Studio trong diễn đàn General Topics
    Trả lời: 1
    Bài cuối: 09-09-2013, 10:33 PM

Các từ khóa xuất hiện trên google của chủ đề

Tao but xoa images trong codeigniter

Nut xoa file khi upload trong trang quan tri codeigniter

Nut xoa file image trong codeigniter

Huong dan dung file auload trong CI

lenh cat upanh trong php

codeigniter upload file

load img duong dan tuong doi trong ci

loi dong file = this-&gt;data[Product][images];

upload image forders tromg codeigniter

upload lên nhiêu thư mục trong codeigniter

upload lên nhiêu thu muc khac nhau trong codeigniter

upload len 2 thu muc cung luc trong codeigniter

code php quan lý file

form upload ảnh và video trong codeinigter

Tag của Chủ đề này - Hãy Thêm Tags Để bài viết nhanh lên top google

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •