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 相关文章推荐
如何做到多笔资料的同步
Oct 09 PHP
ASP和PHP都是可以删除自身的
Apr 09 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
PHP IE中下载附件问题解决方法
Jan 07 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
Symfony2 session用法实例分析
Feb 04 PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 PHP
php app支付宝回调(异步通知)详解
Jul 25 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 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
Home Coffee Roasting
2021/03/03 咖啡文化
php常用的url处理函数总结
2014/11/19 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
Django Highcharts制作图表
2016/08/27 Python
python 中split 和 strip的实例详解
2017/07/12 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
营销人才自我鉴定范文
2013/12/25 职场文书
八年级生物教学反思
2014/01/22 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
房租涨价通知
2015/04/23 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
未婚证明范本
2015/06/15 职场文书
Python实现机器学习算法的分类
2021/06/03 Python