php基于CodeIgniter实现图片上传、剪切功能
这篇文章主要为大家详细介绍了php基于CodeIgniter实现图片上传、剪切功能,具有参考价值,感兴趣的朋友可以参考一下。
本文实例为大家分享了codeigniter 图片上传、剪切,控制器类,供大家参考,具体内容如下:
- <?php
- defined('BASEPATH') OR exit('No direct script access allowed');
- class Index extends MY_Controller {
- function __construct(){
- parent::__construct();
- $this->load->helper(array('form', 'url'));
- }
- /**
- * 首页
- */
- public function index() {
- $this->load->view('upload_form', array('error' => ' ' ));
- }
- public function do_upload()
- {
- $config['upload_path'] = './data/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->library('image_lib');
- list($width, $height) = getimagesize($data['upload_data']['full_path']);
- $config['image_library'] = 'gd2';
- $config['source_image'] = $data['upload_data']['full_path'];
- $config['maintain_ratio'] = TRUE;
- if($width >= $height)
- {
- $config['master_dim'] = 'height';
- }else{
- $config['master_dim'] = 'width';
- }
- $config['width'] = 180;
- $config['height'] = 180;
- $this->image_lib->initialize($config);
- $this->image_lib->resize();
- $config['maintain_ratio'] = FALSE;
- if($width >= $height)
- {
- $config['x_axis'] = floor(($width * 180 / $height - 180)/2);
- }else{
- $config['y_axis'] = floor(($height * 180 / $width - 180)/2);
- }
- $this->image_lib->initialize($config);
- $this->image_lib->crop();
- $this->load->view('upload_success', $data);
- }
- }
- }