Blog

Upload là thư viện hỗ trợ sẵn trong Codeigniter cho phép người sử dụng upload file, kiểm tra tính hợp lệ, …. khi tải file lên website. Tương tự như như các thư viện khác trước khi sử dụng việc chúng ta cần làm là gọi thư viện, cấu hình( nếu có) và bắt đầu sử dụng…Bài này chúng ta sẽ cùng bắt đầu với Thư viện Upload file trong Codeigniter.

Gọi thư viện và cấu hình

Trước khi bắt đầu hãy gọi thư viện upload bằng cú pháp như đã học trong bài viết về Libraries trong Codeigniter

<?php
class Files extends CI_Controller{
public function __construct(){
$this->load->library('upload');
}
}
?>

Tiếp theo, trước khi bắt đầu chúng ta cần 1 số khai báo cấu hình để bắt đầu upload file như: thư mục lưu trữ, định dạng file, dung lượng tối đa,… và đặt trong Controller xử lý upload

Ví dụ:

<?php
class Files extends CI_Controller{
public function __construct(){
$this->load->library('upload');
}
public function upload(){
$config['upload_path']   = '/uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size']      = '1000';//đơn vị kb
$config['max_width']     = '1024';//pixel
$config['max_height']    = '1024';//pixel
$config['overwrite']= true;//cho phép ghi đè file đã tồn tại
}
}
?>

Cuối cùng hãy thêm dòng

$this->upload->initialize($config);
//Hoặc sử dụng cách bên dưới để thiết lập, nếu sử dụng cách bên dưới thì không cần load thư viện ở __construct()
$this->load->library('upload', $config);

 Bắt đầu upload file

Để bắt đầu upload file bạn cần gọi phương thức do_upload()

$this->upload->do_upload('file');//Với file là name của trường input file

Trả về dữ liệu đã upload

  • data(): Trả về thông tin file upload thành công như: tên file, nơi lưu trữ, dung lượng,…. $this->upload->data();

 

Ví dụ tải file trong Codeigniter

Chuẩn bị views: themes/upload.php

<form enctype="multipart/form-data" method="post" action="file/upload">
<input type="file" name="hinhanh" />
<input type="submit" name="submit" value="Tải lên" />
</form>

Controller: files.php

<?php
class Files extends CI_Controller{
public function __construct(){
}
public function upload(){
Kiểm tra nút submit
if(this->input->post('submit')){
$config['upload_path']   = '/uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size']      = '1000';//đơn vị kb
$config['max_width']     = '1024';//pixel
$config['max_height']    = '1024';//pixel
$config['overwrite']= true;
$this->load->library('upload',$config);
if($this->upload->do_upload('hinhanh')){
$data=$this->upload->data();
print_r($data);//in ra kết quả upload thành công
}
else {
$error=$this->upload->display_error();
print_r($error);
}
}
$this->load->view('themes/upload');
}
}
?>

Vậy là chúng ta đã tìm hiểu xong về Upload trong Codeigniter– Một trong những thư viện rất hữu ích trong Codeigniter, trong các bài viết tiếp theo chúng ta sẽ tìm hiểu thêm các thư viện Session, Giỏ hàng,….