php上传空间,php上传 - WenRuige的个人空间 - OSCHINA - 中文开源技术交流社区

title

请选择你要上传的文件:

php上传前台

后台使用 $_FILES接收的格式

Array

(

[file] => Array

(

[name] =>       文件的名字

[type] => 文件的种类

[tmp_name] =>   文件的临时存储地点

[error] =>      错误号

[size] =>       文件的大小

)

)

这里的error有 8中错误

// UPLOAD_ERR_OK         Value: 0

当 error = 0  没有错误发生 文件上传成功

// UPLOAD_ERR_INI_SIZE   Value: 1

当 error = 1 上传的文件超过了 php.ini 中 upload_max_filesize 的大小

// UPLOAD_ERR_FORM_SIZE  Value: 2

当 error = 2 上传文件的大小超过了 html 表单中 max_file_size的大小

// UPLOAD_ERR_PARTIAL    Value: 3

当 error = 3 文件只有部分被上传

// UPLOAD_ERR_NO_FILE    Value: 4

当 error =4 没有文件被上传

// UPLOAD_ERR_NO_TMP_DIR Value: 6

当 error = 6 找不到临时文件

// UPLOAD_ERR_CANT_WRITE Value: 7

当 error = 7 临时文件写入失败

// UPLOAD_ERR_EXTENSION  Value: 8

当 error =8 php 扩展程序被中断

后台代码

1,接收前台传过来的  doAction_1.php

header('content-type:text/html;charset=utf-8');

//设置为UTF-8显示防止乱码

require_once 'upload.class.php';

$upload = new upload('file');//创建对象

$upload->uploadFile();

//$upload = new $upload();

?>

使用面向对象的方法调用

class upload{

protected  $maxSize; //规定最大的上传大小

protected  $fileName;  // 传过来的文件名称

protected  $fileInfo; //

protected  $name; //传过来的文件类型

protected  $all; //所有的文件类型

protected  $path;

//构造函数

public  function __construct($fileName='file',$path='uploads',$maxSize='999999',$all=array('txt','png','doc','jpg')){

//语句前面加上@ 可以去掉出错的语句

$this->fileName=$fileName;

$this->maxSize= $maxSize;

$this->all =$all;

$this->path=$path;

$this->fileInfo=$_FILES[$fileName];

}

//检查是否是HTTPPOST提交

protected function checkHttpPost(){

if(!is_uploaded_file($this->fileInfo['tmp_name'])){

exit("文件不是通过HTTP POST传过来的");

return false;

}

return ture;

}

//检查是否报错

public function checkError(){

//$i=1;

switch($this->fileInfo['error']){

case 1:

$this->error= '当 error = 1 上传的文件超过了 php.ini 中 upload_max_filesize 的大小';

//echo 123;

break;

case 2:

$this->error= "当 error = 2 上传文件的大小超过了 html 表单中 max_file_size的大小";

break;

case 3:

$this->error= "当 error = 3 文件只有部分被上传";

break;

case 4:

$this->error='当 error =4 没有文件被上传';

break;

case 6:

$this->error="当 error = 6 找不到临时文件";

break;

case 7:

$this->error ="系统错误";

case 8:

$this->error ="系统错误";

}

}

//检查是否超过规定大小

protected function checkSize(){

if($this->fileInfo['size']>$this->maxSize){

echo "checksize";

//$this->error='上传文件过大';

return false;

}

return true;

}

//检查文件类型

protected function checkKind(){

$this->name= end(explode ( "." ,  $this->fileInfo['name']));

if(!in_array($this->name,$this->all)){

echo "checksize";

exit('非法的文件类型');

return false;

}

return true;

}

public function uploadFile(){

move_uploaded_file($this->fileInfo['tmp_name'],$this->path.'/'.iconv("UTF-8","gb2312",$this->fileInfo['name']));

if($this->checkKind()&&$this->checkSize()){

echo "132";

//&&&&$this->checkHttpPost()&&$this->checkSize()

}

}

public function error(){

exit('

'.$this->error.'

');

}

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值