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 相关文章推荐
个人站长制做网页常用的php代码
Mar 03 PHP
用mysql内存表来代替php session的类
Feb 01 PHP
php 文件缓存函数
Oct 08 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
Yii操作数据库的3种方法
Mar 11 PHP
自编函数解决pathinfo()函数处理中文问题
Nov 03 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
PHP实现微信提现功能
Sep 30 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
PHPLog php 程序调试追踪工具
2009/09/09 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
window.open的功能全解析
2006/10/10 Javascript
javascript[js]获取url参数的代码
2007/10/17 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
js实现简单的秒表
2020/01/16 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
python采集博客中上传的QQ截图文件
2014/07/18 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
Python制作exe文件简单流程
2019/01/24 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
python实现图像拼接
2020/03/05 Python
python使用建议与技巧分享(一)
2020/08/17 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
拓展培训心得体会
2014/01/04 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
团代会闭幕词
2015/01/28 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
sql注入报错之注入原理实例解析
2022/06/10 MySQL