切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
利用CodeIgniter框架中的上传类[复制链接]
发表于 2013-1-3 15:11:01 | 显示全部楼层 |!read_mode!
CI是一个很个性 操作简单的轻量级开源框架   我们利用其中的upload类来上传文件

关于mvc的理解   可以关联一下smarty模板的使用  你所建立的模板就是 mvc中的 V 视图   那么 我们需要像模板中传递数据  这个传递功能的实现就是mvc中的C  控制器  当然我们所传递的数据有一部分是来自于数据库 M 就是mvc的模型     所以c 是可以操作m 和 v 的     这仅是个人的一点理解

首先要建立 视图文件  在视图文件夹views下 建立  upload.htm
<form method='post' action="/CI/index.php/upload/up" enctype='multipart/form-data'>
        <input type='file' name='pic'><br>
        <input type='submit' name='sub'>
</form>


在控制器 文件夹controllers下建立控制器文件 uoload.php  
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Upload extends CI_Controller { //继承核心控制类
        function index(){
                $this->load->view('upload.htm');//加载视图文件
        }
       
        function up(){
                if(isset($_POST['sub'])){
                        /*
                        $hz=explode(".",$_FILES['pic']['name']);
                        $hz=$hz[1];
                        $filename=time().".".$hz;
                        if(is_uploaded_file($_FILES['pic']['tmp_name'])){
                                move_uploaded_file($_FILES['pic']['tmp_name'],'./upload/'.$filename);
                        }
                         */
                        $config=array();
                        $config['upload_path']="./upload/";
                        $config['allowed_types']="gif|jpg|jpeg";
                        $config['max_size']=20000;
                        $this->load->library("upload",$config);//加载上传类
                        if($this->upload->do_upload('pic')){
                                $data=array('updata_data'=>$this->upload->data());
                                print_r($data);       
                        }else {
                                $error=array("error"=>$this->upload->display_errors());
                                print_r($error);
                        }
                }
        }       
}

关于URL: url中以index.php为主入口文件 后边紧接控制器名字然后紧接控制器中的方法名   每一个控制器中的方法名都是一个页面

例如 :http://127.0.0.1/CI/index.php/upload/index    就会出现我们刚才所建立的上传页面




发表于 2013-1-3 18:07:54 | 显示全部楼层
$config['allowed_types']="gif|jpg|jpeg";这里怎么没看见哪里有用到啊,可以找下有没有这个框架写的开源cms或程序,审计下,学的更快些:)
发表于 2013-1-3 18:54:39 | 显示全部楼层
抚菊深思 发表于 2013-1-3 18:07
$config['allowed_types']="gif|jpg|jpeg";这里怎么没看见哪里有用到啊,可以找下有没有这个框架写的开源cm ...

恩   好地      顺变问个问题  dz  dedecmd  ecshop  这些开源程序的二次开发 该怎么学啊  我怎么老是找不到头绪呢  
发表于 2013-1-3 20:41:42 | 显示全部楼层
二次开发是根据需求来的,比如你要修改或是新增某个开源程序的适合你自己需求的程序,那么就必须先找到和原生的这个开源程序的切入点,基本框架和核心代码要熟悉,才能进行二次开发,熟悉了他们的代码后,某些底层的class或function直接调用就ok

代码区

GMT+8, 2019-11-13 03:29

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部