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 sprintf()函数让你的sql操作更安全
Jul 23 PHP
PHP 截取字符串专题集合
Aug 19 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
PHP代码审核的详细介绍
Jun 13 PHP
php实现的通用图片处理类
Mar 24 PHP
php操作redis缓存方法分享
Jun 03 PHP
php图像验证码生成代码
Jun 08 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 23 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
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
JS Timing
2007/04/21 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
关于TypeScript模块导入的那些事
2018/06/12 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
总务岗位职责
2013/11/19 职场文书
业务主管岗位职责范本
2013/12/25 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
2014年科技工作总结
2014/11/26 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
再谈python_tkinter弹出对话框创建
2022/03/20 Python