在 CodeIgniter 3 處理上傳的檔案以及取得檔名、圖片大小等相關資訊

分享:

要在 CodeIgniter 3 上傳檔案,一樣會建議用內建的函式 form_open_multipart() 來建立表單,之後再處理上傳這邊可以像這樣寫:

準備一個 html

<?php echo form_open_multipart('upload/do_upload');?>

<input type="file" name="userfile" size="20" />

<br /><br />

<input type="submit" value="upload" />

 

Controller 處理的部分如下:

$config['upload_path']          = './uploads/';
$config['allowed_types']        = 'gif|jpg|png';
$config['max_size']             = 100;
$config['max_width']            = 1024;
$config['max_height']           = 768;

$this->load->library('upload', $config);

if ( ! $this->upload->do_upload('userfile'))
{
  $error = array('error' => $this->upload->display_errors());
  $this->load->view('upload_form', $error);
}
else
{
  $data = array('upload_data' => $this->upload->data());
  $this->load->view('upload_success', $data);
}

在取得上傳資料 $this->upload->data() 之後,可以參考以下的 code 把需要的值拿出來:

Array
(
        [file_name]     => mypic.jpg
        [file_type]     => image/jpeg
        [file_path]     => /path/to/your/upload/
        [full_path]     => /path/to/your/upload/jpg.jpg
        [raw_name]      => mypic
        [orig_name]     => mypic.jpg
        [client_name]   => mypic.jpg
        [file_ext]      => .jpg
        [file_size]     => 22.2
        [is_image]      => 1
        [image_width]   => 800
        [image_height]  => 600
        [image_type]    => jpeg
        [image_size_str] => width="800" height="200"
)

比如我要拿檔案格式,就是利用  $upload_data["image_type"] 這樣。

處理過後就能夠把想要的資料儲存到資料庫了。

課程推薦

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。