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定时执行计划任务的多种方法小结
Dec 19 PHP
PHP验证码函数代码(简单实用)
Sep 29 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
PHP学习笔记之字符串编码的转换和判断
May 22 PHP
php邮件发送的两种方式
Apr 28 PHP
php数据访问之增删改查操作
May 09 PHP
YII框架中搜索分页jQuery写法详解
Dec 19 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
Feb 05 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
Apr 16 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守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
python调用百度语音REST API
2018/08/30 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
拉丁舞学习者的自我评价
2013/10/27 职场文书
庆八一活动方案
2014/01/25 职场文书
自荐信的格式
2014/03/10 职场文书
学生操行评语大全
2014/04/24 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
现货白银电话营销话术
2015/05/29 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
Python中常见的导入方式总结
2021/05/06 Python
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
Java界面编程实现界面跳转
2022/06/16 Java/Android