CI框架文件上传类及图像处理类用法分析


Posted in PHP onMay 18, 2016

本文实例讲述了CI框架文件上传类及图像处理类用法。分享给大家供大家参考,具体如下:

//列表页banner图片
public function edit_list_page_banner($category_id=""){
  $category_id= empty($category_id)?$_POST["category_id"]:$category_id;
  //上传图片
  if(isset($_POST["key"]) && $_POST["key"] == "upload"){
   /*
   1.set_upload_path
   */
   $config['upload_path']="./upload/source/".date("Y/m/d");//文件上传目录
   if(!file_exists("./upload/source/".date("Y/m/d"))){
    mkdir("./upload/source/".date("Y/m/d"),0777,true);//原图路径
   }
   if(!file_exists("./upload/big_thumb/".date("Y/m/d"))){
    mkdir("./upload/big_thumb/".date("Y/m/d"),0777,true);//大缩略图路径
   }
   if(!file_exists("./upload/small_thumb/".date("Y/m/d"))){
    mkdir("./upload/small_thumb/".date("Y/m/d"),0777,true);//小缩略图路径
   }
   $config['allowed_types']="gif|jpg|png|txt";//文件类型
   $config['max_size']="20000";//最大上传大小
   $this->load->library("upload",$config);
   if($this->upload->do_upload('userfile'))//表单中name="userfile"
   {
    //上传成功之后,生成两张缩略图
    $data=$this->upload->data();//返回上传图片的信息
    $this->load->library("image_lib");//载入图像处理类库
    //第一种方式:大缩略图的配置参数
    /*
    $config_big_thumb['image_library'] = 'gd2';//gd2图库
    $config_big_thumb['source_image'] = $data['full_path'];//原图
    $config_big_thumb['new_image'] = "./upload/big_thumb/".date("Y/m/d")."/".$data['file_name'];//大缩略图
    $config_big_thumb['create_thumb'] = true;//是否创建缩略图
    $config_big_thumb['maintain_ratio'] = true;
    $config_big_thumb['width'] = 300;//缩略图宽度
    $config_big_thumb['height'] = 300;//缩略图的高度
    $config_big_thumb['thumb_marker']="_300_300";//缩略图名字后加上 "_300_300",可以代表是一个300*300的缩略图
    */
    //第二种:大缩略图的配置参数
    /*
    $config_big_thumb=array(
     'image_library' => 'gd2',//gd2图库
     'source_image' => $data['full_path'],//原图
     'new_image' => "./upload/big_thumb/".date("Y/m/d")."/".$data['file_name'],//大缩略图
     'create_thumb' => true,//是否创建缩略图
     'maintain_ratio' => true,
     'width' => 300,//缩略图宽度
     'height' => 300,//缩略图的高度
     'thumb_marker'=>"_300_300"//缩略图名字后加上 "_300_300",可以代表是一个300*300的缩略图
    );
    */
    //第三种方式:将部分配置信息放到了config.php文件中
    $config_big_thumb=$this->config->item("config_big_thumb");
    $config_big_thumb['source_image']=$data['full_path'];
    $config_big_thumb['new_image']="./upload/big_thumb/".date("Y/m/d")."/".$data['file_name'];
    //小缩略图的配置参数
    /*
    $config_small_thumb['image_library'] = 'gd2';//gd2图库
    $config_small_thumb['source_image'] = $data['full_path'];//原图
    $config_small_thumb['new_image'] = "./upload/small_thumb/".date("Y/m/d")."/".$data['file_name'];//大缩略图
    $config_small_thumb['create_thumb'] = true;//是否创建缩略图
    $config_small_thumb['maintain_ratio'] = true;
    $config_small_thumb['width'] = 100;//缩略图宽度
    $config_small_thumb['height'] = 100;//缩略图的高度
    $config_small_thumb['thumb_marker']="_100_100";//缩略图名字后加上 "_100_100",可以代表是一个100*100的缩略图
    */
    //小缩略图的配置参数
    $config_small_thumb=array(
     'image_library' => 'gd2',//gd2图库
     'source_image' => $data['full_path'],//原图
     'new_image' => "./upload/small_thumb/".date("Y/m/d")."/".$data['file_name'],//大缩略图
     'create_thumb' => true,//是否创建缩略图
     'maintain_ratio' => true,
     'width' => 100,//缩略图宽度
     'height' => 100,//缩略图的高度
     'thumb_marker'=>"_100_100"//缩略图名字后加上 "_300_300",可以代表是一个300*300的缩略图
    );
    //$this->load->library("image_lib",$config_thumb);
    $this->image_lib->initialize($config_big_thumb);
    $this->image_lib->resize();//生成big缩略图
    $this->image_lib->initialize($config_small_thumb);
    $this->image_lib->resize();//生成small缩略图
    //插入数据库
    $data_array = array(
     'category_id' => $category_id,
     'pic_url' => "./upload/source/".date("Y/m/d")."/".$data['file_name'],
     'addtime' => time(),
     'is_stop' => 1,
     'sort'=>0,
     'gender' => $_POST["gender"],
     'link_url'=>$_POST["link_url"],
     'user_id' => intval($this->cur_user ['user_id'])
    );
    $this->category_model->add_category_banner($data_array);
   }
  }
  $con_arr[] = " category_id= '{$category_id}'";
  if ($gender=='' ) {
   $gender=0;
  }
  $con_arr[] = " gender= '{$gender}'";
  $condition = implode( ' and ', $con_arr);
  $banner_list = $this->category_model->get_banner_all($condition);
  $this->tp->assign('banner_list', $banner_list);
  $this->tp->assign('base_url', base_url());
  $this->tp->assign('gender', $gender);
  $this->tp->assign('category_id', $category_id);
  $this->tp->display("category/edit_list_page_banner.php");
}

config.php文件中有关缩略图的配置项:

//大缩略图的配置参数
$config_big_thumb=array(
 'image_library' => 'gd2',//gd2图库
 'create_thumb' => true,//是否创建缩略图
 'maintain_ratio' => true,
 'width' => 300,//缩略图宽度
 'height' => 300,//缩略图的高度
 'thumb_marker'=>"_300_300"//缩略图名字后加上 "_300_300",可以代表是一个300*300的缩略图
);

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php file_exists 检查文件或目录是否存在的函数
May 10 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
PHP使用SOAP调用.net的WebService数据
Nov 12 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
浅谈php中变量的数据类型判断函数
Mar 04 PHP
php将html转为图片的实现方法
May 19 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
php和nginx交互实例讲解
Sep 24 PHP
CI框架实现cookie登陆的方法详解
May 18 #PHP
浅析php静态方法与非静态方法的用法区别
May 17 #PHP
php关闭warning问题的解决方法
May 17 #PHP
XHProf报告字段含义的解析
May 17 #PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 #PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 #PHP
简单理解PHP的面向对象编程方式
May 17 #PHP
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
javascript读取RSS数据
2007/01/20 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
python实现代码行数统计示例分享
2014/02/10 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
python的常用模块之collections模块详解
2018/12/06 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
python 字符串格式化的示例
2020/09/21 Python
法国足球商店:Footcenter
2019/07/06 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
美容院营销方案
2014/03/05 职场文书
美术指导求职信
2014/03/17 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
python 中[0]*2与0*2的区别说明
2021/05/10 Python