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


Posted in PHP onMay 14, 2016

本文实例为大家分享了codeigniter 图片上传、剪切,控制器类,供大家参考,具体内容如下

<?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 stripos()函数及注意事项的分析
Jun 08 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
DWZ+ThinkPHP开发时遇到的问题分析
Dec 12 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
浅谈如何提高PHP代码的质量
May 28 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 #PHP
PHP pear安装配置教程
May 14 #PHP
php+html5+ajax实现上传图片的方法
May 14 #PHP
yii2使用ajax返回json的实现方法
May 14 #PHP
php文件上传类完整实例
May 14 #PHP
Smarty高级应用之缓存操作技巧分析
May 14 #PHP
php生成Android客户端扫描可登录的二维码
May 13 #PHP
You might like
PHP分页函数代码(简单实用型)
2010/12/02 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
python脚本作为Windows服务启动代码详解
2018/02/11 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
python监控nginx端口和进程状态
2019/09/06 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Python远程方法调用实现过程解析
2020/07/28 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
公共场所禁烟倡议书
2014/08/30 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
网聊搭讪开场白
2015/05/28 职场文书
芙蓉镇观后感
2015/06/10 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
gateway网关接口请求的校验方式
2021/07/15 Java/Android
Vue操作Storage本地化存储
2022/04/29 Vue.js