使用CodeIgniter的类库做图片上传

CodeIgniter的文件上传类允许文件被上传。您可以设置指定上传某类型的文件及指定大小的文件。

上传文件普遍的过程:

一个上传文件用的表单,允许用户选择一个文件并上传它。
当这个表单被提交,该文件被上传到指定的目录。
同时,该文件将被验证是否符合您设定的要求。
一旦文件上传成功,还要返回一个上传成功的确认窗口。

下面是表单:

代码如下:

<form method="post" action="<?=base_url()?>admin/img_upload/" enctype="multipart/form-data" />
 <div style="margin:0 0 0.5em 0em;">
  <input type="file" name="userfile" size="20" class="button" />
  <input type="submit" value=" 上传 " class="button" />
 </div>
</form>

然后是下面是上传类:

代码如下:

public function img_upload()
{
 $this->load->helper('url');

$config['upload_path'] = './images/'.date('Ym', time()).'/';
 $config['allowed_types'] = 'gif|jpg|png';
 $config['file_name'] = date('Y_m_d', time()).'_'.sprintf('%02d', rand(0,99));
 $config['max_size'] = '500';
 $config['max_width']  = '1024';
 $config['max_height']  = '768';

$this->load->library('upload', $config);

if ( !$this->upload->do_upload())
   {
     $error = array('error' => $this->upload->display_errors());
   }
 else
   {
     $data = array('upload_data' => $this->upload->data());
   }
}

需要用到的几个函数

$this->upload->do_upload():根据你的偏好配置参数执行操作。注意:默认情况下上传的文件来自于提交表单里名为userfile的文件域,并且该表单必须是 "multipart"类型。
$this->upload->display_errors():如果do_upload()返回失败,显示错误信息。此函数不会自动输出,而是返回数据,所以你可以按你的要求安排。
$this->upload->data():这是一个辅助函数,它返回你上传文件的所有相关信息的数组。

(0)

相关推荐

  • CodeIgniter辅助之第三方类库third_party用法分析

    本文实例分析了CodeIgniter辅助之第三方类库third_party用法.分享给大家供大家参考,具体如下: third_party用来存放系统中引入的第三方类库,类库通常提供的功能比较丰富,相应的学习成本也要高些,系统中能用到功能有限,所以建议在引入类库时进行适当的封装,让系统中更方便使用,其他人使用时只需关注扩展的方法而无法关注具体的实现.以CI集成Twig模版为例吧. 首先需要下载Twig类库,并放在third_party中,然后在libraries中进行一次封装,示例如下: <?ph

  • php实现仿写CodeIgniter的购物车类

    本文实例讲述了php实现仿写CodeIgniter的购物车类.分享给大家供大家参考.具体如下: 这里仿写CodeIgniter的购物车类 购物车基本功能: 1) 将物品加入购物车 2) 从购物车中删除物品 3) 更新购物车物品信息 [+1/-1] 4) 对购物车物品进行统计    1. 总项目    2. 总数量    3. 总金额 5) 对购物单项物品的数量及金额进行统计 6) 清空购物车 cart.php文件如下:  <?php /** * * @author quanshuidingda

  • CodeIgniter图像处理类的深入解析

    image.php 复制代码 代码如下: <?phpclass Image extends Controller {    function Image()    {    parent::Controller();       $this->load->library('image_lib');       } //缩略图    function index(){        echo '* 调整图像大小 <br>            * 创建缩略图 <br>

  • CodeIgniter基于Email类发邮件的方法

    本文实例讲述了CodeIgniter基于Email类发邮件的方法.分享给大家供大家参考,具体如下: CodeIgniter拥有功能强大的Email类.以下为利用其发送邮件的代码. 关于CI的Email类的详情请参考:http://codeigniter.org.cn/user_guide/libraries/email.html 文件路径为/application/controllers/welcome.php <?php if ( ! defined('BASEPATH')) exit('No

  • CodeIgniter扩展核心类实例详解

    本文实例讲述了CodeIgniter扩展核心类的方法.分享给大家供大家参考,具体如下: CI中对核心类.辅助类和函数的扩展是相当方便的,配置文件中指定了subclass_prefix扩展前缀,默认为MY_,扩展时需要以该配置为前缀,下面整理下扩展方式. 1.扩展核心类 核心类位于system/core下,其中大部分类会在初始化的时候自动加载.扩展核心类的方式有两种:替换核心类和继承核心类. 替换核心类 当application/core目录下存在与system/core同名的文件时会自动替换掉核

  • CI(Codeigniter)的Setting增强配置类实例

    本文实例讲述了Codeigniter的Setting增强配置类.分享给大家供大家参考,具体如下: 该增强配置类适用配置项要求比较灵活的项目.可实现预加载配置.组配置.单项调取.增.删.改配置,无需在改动config文档. 使用: 在需要的地方 复制代码 代码如下: $this->load->library('setting'); 对于预加载项可以使用 复制代码 代码如下: $this->config->item(); 进行获取 对于临时调取项可以使用 复制代码 代码如下: $thi

  • codeigniter中测试通过的分页类示例

    通用分页类(以Codeigniter测试) page_list.php 复制代码 代码如下: <?php if( ! defined('BASEPATH')) die('No Access'); /** * 分页类 */class Page_list { /**     * 总数据     * @var int     */    private $total;    /**     * 每页显示数据     * @var int     */    private $size;    /** 

  • CI(CodeIgniter)模型用法实例分析

    本文实例分析了CI(CodeIgniter)模型用法.分享给大家供大家参考,具体如下: MVC中的业务逻辑放在控制器中或者模型里都是不合适的,所以这里对业务逻辑进行了分离,多出一层用来处理业务逻辑,模型就只当作数据访问层,这样子模型将会变得比较轻.CI中并未通过实体对象来传参,参数的传入和返回都由开发者控制,比较灵活.很多情况下都会以数组的方式传入或者返回. 模型的使用也比较简单,这里只提一下使用前想到的几个问题吧. 1.既然已经有了数据访问层了,那我们就应当避免在控制器或者某些类中直接通过SQ

  • Codeigniter的dom类用法实例

    本文实例讲述了Codeigniter的dom类用法.分享给大家供大家参考.具体分析如下: 利用simple_html_dom dom类为CI修改的一个类库,可以像JS一样对HTML元素进行分析,适合与抓取网页时,对网页数据进行的分析. 类库下载地址: http://sourceforge.net/projects/simplehtmldom/ 修改: 把simple_html_dom批量替换为CI_Simple_html_dom. 放置在application\libraries下: funct

  • CI框架(CodeIgniter)公共模型类定义与用法示例

    本文实例讲述了CI框架(CodeIgniter)公共模型类定义与用法.分享给大家供大家参考,具体如下: 我们都知道,操作数据库的方法都写在模型中.但是一般情况下,一张表往往至少对应4个操作,也就是所谓crud.那么如果20张表,所对应的模型方法,就达到了80个,重复的操作显然这已经是一个体力活儿. 那么就对单表操作时,我们进行一下简单的封装.如下是ci框架的示例: <?php /** * Created by PhpStorm. * User: kangjianrong * Date: 16-8

  • CodeIgniter分页类pagination使用方法示例

    本文实例讲述了CodeIgniter分页类pagination使用方法.分享给大家供大家参考,具体如下: controller控制器(application/controller/page.php文件): public function index() { $this->load->model ( 'home_model' , '' , TRUE); $config= array(); $config['per_page'] = $this->per_page; //每页显示的数据数 $

  • Codeigniter整合Tank Auth权限类库详解

    相交其他CodeIgniter的类库,tank_auth,配置简单,使用也简单,并且作者也一直在更新,现在是1.0.9.1.0.8已经支持CI2.0了,我现在一般的项目都是用它,所以推荐给大家. 安装Tankauth的步骤 下载最新版类库(下载地址:http://www.konyukhov.com/soft/tank_auth/tank_auth.zip) 解压文件将application下相应的文件复制到你的CIapplication文件夹下.将captcha文件夹复制到你的CI文件夹(项目目

随机推荐