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为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
php UTF8 文件的签名问题
Oct 30 PHP
使用PHP实现蜘蛛访问日志统计
Jul 05 PHP
将php数组输出html表格的方法
Feb 24 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
php中文字符串截取方法实例总结
Sep 30 PHP
PHP实现的购物车类实例
Jun 17 PHP
Symfony2实现在controller中获取url的方法
Mar 18 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
浅谈PHP的反射API
Feb 26 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 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 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
给Function做的OOP扩展
2009/05/07 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Windows下python3.6.4安装教程
2018/07/31 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
Django中的用户身份验证示例详解
2019/08/07 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
新西兰优惠网站:Treat Me
2019/07/04 全球购物
爸爸的花儿落了教学反思
2014/02/20 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
最感人的道歉情书
2015/05/12 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS