CI框架文件上传

一. PHP上传原理

view/up.php

<html>
<form action="/ci/index.php/upload/up" method="post" enctype="multipart/form-data"> 
<input type="file" name="upfile">
<input type="submit" name="sub" value="提交">
</form>
</html>

 controller/upload.php

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

class Upload extends CI_Controller {

	public function index()
	{
		$this->load->view('up');
	}
	function up()
	{
	if(!empty($_POST['sub']))
	{
		
     $file=($_FILES['upfile']);
	// var_dump($file);
	 if($file['size']>=2000000)
		{
		 echo "size no";
	    }else{
		switch($file['type'])
			{
		case 'image/pjpeg':
			$hz=".jpg";
		break;
		default:
			$hz=false;
		break;		
		}
		if($hz)
			{
			$time=time();
			$r=move_uploaded_file($file['tmp_name'],"./upload/{$time}{$hz}");
			//echo $r;
		}else{
		echo "type no";
		}
		}

	}
	}
}

二. CI框架的上传操作

1、定义一个数组,设置一些与上传相关的参数

//设置上传目录,这里写./,目录要建在网站根目录,就是和application同级

//如果你要放在application目录下,可以用系统定义的路径常量APPPATH

//例如APPPATH.'uploads/',路径是相对框架的路径的,不是www的路径

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

//设置允许上传的类型

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

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

2、设置额外的参数

3、调用CI的上传通用类,并执行上传

//upload为调用的类名,全小写

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

//如果上传框的name写的是userfile,那就不用传参数了,如果不是,把name的值传进去

$this->upload->do_upload('上传框的name')

4、接受出错信息或成功信息

//出错信息

$error = array('error' => $this->upload->display_errors());

 //成功信息,会把上传后的文件信息返回出来

$data = array('upload_data' => $this->upload->data());

详细信息参见手册:http://codeigniter.org.cn/user_guide/libraries/file_uploading.html

原文地址:https://www.cnblogs.com/Hebe/p/3023095.html