天天看点

CI(4)

文件上传的步骤以及应该注意的地方

1:提交上传

 1)在php.ini中设置file_uploads = On

 2)表单的提交形式必须为post

 3)enctype="multipart/form-data"

 4)type="file"

2:接收信息

 $_FILES 

 原文件名

 临时文件名

 大小

 文件编码格式

 报错信息

3:根据接收到的信息判断文件格式,大小等等

4:执行上传 move_uploaded_file()

CI框架的文件上传的步骤

1:文件上传类是system\libraries\Upload.php

2:执行上传的步骤

1)

  $config['upload_path']="./upload";  //上传到的目录,注意用相对路径  upload需要手动建立

$config['allowed_types']="gif|jpg|png";  //限制文件类型

$config['max_size']="20000";    //限制上传文件大小  单位为B

    2)  $this->load->library("upload",$config);  加载上传类  并且写入congfig的参数

3)$this->upload->do_upload("file")  执行操作过程,括号里面的参数为表单的name

4)$this->upload->data()   获取上传参数

代码如下

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Upload extends CI_Controller {

function index(){

echo "文件上传";

}

function normal_upload(){

if($_POST){

$name     = $_FILES['file']['name'];

$type     = $_FILES['file']['type'];

$tmp_name = $_FILES['file']['tmp_name'];

$error    = $_FILES['file']['error'];

$size     = $_FILES['file']['size'];  //单位为B

$time     = time();

if($size){

//可以对文件大小  或者$type增加一些限制

$name=iconv("UTF-8","gb2312", $name);

  //防止中文名乱码

$bool = move_uploaded_file($tmp_name,"./upload/".$time.$name);

if($bool){

echo "上传成功";

//可以做一些入库操作

}else{

echo "上传失败";

$this->load->view("upload/index");

function ci_upload(){

$config['upload_path'] = './upload/';

$config['allowed_types'] = 'gif|jpg|png|txt';

$config['max_size'] = '100';

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

if($this->upload->do_upload("file")){

$data=array('upload_data'=>$this->upload->data()); //获取上传数据 入库

//print_r($data);

?>

CI