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实现MySQL更新记录的代码
Jun 07 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
php防止网站被刷新的方法汇总
Dec 01 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
PHP时间函数使用详解
Mar 21 PHP
PHP7 字符串处理机制修改
Mar 09 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 类与构造函数解析
2017/02/06 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
详解python多线程之间的同步(一)
2019/04/03 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
Python2与Python3的区别点整理
2019/12/12 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
LINUX下线程,GDI类的解释
2012/04/17 面试题
入党自我评价优缺点
2014/01/25 职场文书
元旦联欢会主持词
2014/03/26 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
海洋科学专业求职信
2014/08/10 职场文书
明星员工获奖感言
2014/08/14 职场文书
房产公证委托书范本
2014/09/20 职场文书
学校通报表扬范文
2015/05/04 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android