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 相关文章推荐
在mysql数据库原有字段后增加新内容
Nov 26 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
php数组键名技巧小结
Feb 17 PHP
PHP实现即时输出、实时输出内容方法
May 27 PHP
PHP 错误处理机制
Jul 06 PHP
浅谈php7的重大新特性
Oct 23 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
Smarty模板语法详解
Jul 20 PHP
基于laravel belongsTo使用详解
Oct 18 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
优化PHP程序的方法小结
2012/02/23 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
2011/03/01 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
jQuery+html5实现div弹出层并遮罩背景
2015/04/15 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
Python for i in range ()用法详解
2020/09/18 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
销售代表求职自荐信
2013/10/01 职场文书
招聘专员岗位职责
2014/03/07 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
职代会闭幕词
2015/01/28 职场文书
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android