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开发大型项目的一点经验
Oct 09 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
Jan 16 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
四种php中webservice实现的简单架构方法及实例
Feb 03 PHP
Thinkphp调用Image类生成缩略图的方法
Mar 07 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 03 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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 验证码的实现代码
2011/07/17 PHP
PHP防盗链代码实例
2014/08/27 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
完美的php分页类
2017/10/24 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
js加强的经典分页实例
2013/03/15 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
Vue中使用vux配置代码详解
2018/09/16 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
js实现烟花特效
2020/03/02 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
python 基于opencv去除图片阴影
2021/01/26 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
幼儿园大班毕业教师寄语
2014/04/03 职场文书
无偿献血倡议书
2014/04/14 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
烈士陵园观后感
2015/06/08 职场文书
欠条格式范本
2015/07/03 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB
Python内置的数据类型及使用方法
2022/04/13 Python