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


Posted in PHP onMay 07, 2016

本文实例为大家详细介绍了php实现图片上传、剪切功能的具体代码,供大家参考,具体内容如下

<?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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
给php新手谈谈我的学习心得
Feb 25 PHP
php array_intersect()函数使用代码
Jan 14 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
Sep 06 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
redis+php实现微博(三)微博列表功能详解
Sep 23 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 #PHP
PHP检测链接是否存在的代码实例分享
May 06 #PHP
一波PHP中cURL库的常见用法代码示例
May 06 #PHP
PHP实现的简单分页类及用法示例
May 06 #PHP
PHP实现的多文件上传类及用法示例
May 06 #PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 #PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 #PHP
You might like
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
通达OA公共代码 php常用检测函数
2011/12/14 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
css图片自适应大小
2007/11/28 Javascript
Ajax 数据请求的简单分析
2011/04/05 Javascript
js中function()使用方法
2013/12/24 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
angular.element方法汇总
2015/01/07 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
python实现跨文件全局变量的方法
2014/07/07 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
Python原始套接字编程实例解析
2020/01/29 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
使用C#编写创建一个线程的代码
2013/01/22 面试题
机电工程专业应届生求职信
2013/10/03 职场文书
业务总经理岗位职责
2014/02/03 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
Python读写yaml文件
2022/03/20 Python
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers