php基于CodeIgniter实现图片上传、剪切功能


Posted in PHP onMay 14, 2016

本文实例为大家分享了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);
    }
  }
}

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

PHP 相关文章推荐
一个php Mysql类 可以参考学习熟悉下
Jun 21 PHP
php读取xml实例代码
Jan 28 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
php生成静态页面的简单示例
Apr 17 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
详解PHP中的null合并运算符
Dec 30 PHP
PHP中new static()与new self()的比较
Aug 19 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
PHP实现的简单路由和类自动加载功能
Mar 13 PHP
php字符串函数 str类常见用法示例
May 15 PHP
PHP后门隐藏的一些技巧总结
Nov 04 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 #PHP
PHP pear安装配置教程
May 14 #PHP
php+html5+ajax实现上传图片的方法
May 14 #PHP
yii2使用ajax返回json的实现方法
May 14 #PHP
php文件上传类完整实例
May 14 #PHP
Smarty高级应用之缓存操作技巧分析
May 14 #PHP
php生成Android客户端扫描可登录的二维码
May 13 #PHP
You might like
PHP分页显示制作详细讲解
2006/12/05 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python编写爬虫小程序
2015/05/14 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
python之文件读取一行一行的方法
2018/07/12 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Django实现文件上传下载
2019/10/06 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
《三个小伙伴》教学反思
2014/04/11 职场文书
文化建设工作方案
2014/05/12 职场文书
北京奥运会主题口号
2014/06/13 职场文书
护理目标管理责任书
2014/07/25 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python