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相关资料
Oct 09 PHP
一个捕获函数输出的函数
Feb 14 PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
php实例化对象的实例方法
Nov 17 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
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
jQuery实现回到顶部效果
2020/10/19 jQuery
python 快速排序代码
2009/11/23 Python
python字符串的常用操作方法小结
2016/05/21 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
python之django母板页面的使用
2018/07/03 Python
Python多进程原理与用法分析
2018/08/21 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
一些PHP的面试题
2015/05/06 面试题
介绍一下linux文件系统分配策略
2013/02/25 面试题
致跳远运动员加油稿
2014/02/11 职场文书
采购意向书范本
2014/03/31 职场文书
领导干部对照检查材料
2014/08/24 职场文书
健康证明
2015/06/19 职场文书
实习报告范文
2019/07/30 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers