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的5个入手程序
Nov 23 PHP
收集的php编写大型网站问题集
Mar 06 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
php数组转成json格式的方法
Mar 09 PHP
windows下安装php的memcache模块的方法
Apr 07 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
Dec 23 PHP
php 实现进制相互转换
Apr 07 PHP
PHP解压ZIP文件到指定文件夹的方法
Nov 17 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 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中的phpinfo()函数
2013/06/06 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
python实现端口转发器的方法
2015/03/13 Python
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
python 字典(dict)按键和值排序
2016/06/28 Python
python实现动态创建类的方法分析
2019/06/25 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
上班打牌检讨书
2014/02/07 职场文书
先进党员事迹材料
2014/12/24 职场文书
先进基层党组织材料
2014/12/25 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
MySQL学习必备条件查询数据
2022/03/25 MySQL