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 相关文章推荐
第1次亲密接触PHP5(2)
Oct 09 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
浅析php变量修饰符static的使用
Jun 28 PHP
php下载excel无法打开的解决方法
Dec 24 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 PHP
php对称加密算法示例
May 07 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
PHP设计模式之注册树模式分析
Jan 26 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 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 购物车实例(申精)
2009/05/11 PHP
PHP 函数执行效率的小比较
2010/10/17 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
python hook监听事件详解
2018/10/25 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
对python判断是否回文数的实例详解
2019/02/08 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
python中entry用法讲解
2020/12/04 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
幼儿园教师工作制度
2014/01/22 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
争论的故事教学反思
2014/02/06 职场文书
同学毕业留言寄语
2015/02/27 职场文书
小学新课改心得体会
2016/01/22 职场文书