天天看点

php图片上传类 v1.0

花了两天时间完成这个功能实现。

为此重新复习php面向对象有关知识,在类方法返回值return这块还是不太明白,以至于进行错误处理时耗费大量时间。

不说了,直接上代码。图我就不截了,大伙看吧

---------------------------------------------------------------

程序页+表单提交

---------------------------------------------------------------

$upfile_url="../upfile/";//上传路径

$maxsize=ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'Disabled';//获取最大上传大小

if(isset($_POST['sub'])=="sub")

{

include("../sys32/class/images.class.php");//引入images.class.php类文件。文件名自定

$objupload=new Upload;//实例化类对象

$upimg1=$_FILES['img_up'];//post方式获取要上传的文件,img_up为input的name名

$uppath=$upfile_url."images/";//上传路径

$onoff=true;//是否需要上传。如果上传需预先设定,不上传无需调用

$images=$objupload->Up_Images($onoff,$upimg1,$uppath,'images',$maxsize);//调用

//判断返回值是否包含‘错误代号’四字。包含说明:这是一段错误提示语句。不包含说明这是上传后的文件路径

if(!strstr($images,"错误代号"))

{

echo "上传成功!<br />";

echo "<img src=".$images.">";

header(__FILE__);//不知道有没有用

}

else

{

echo $images;

header(__FILE__);//不知道有没有用

}

}

已上是php代码

html代码,

<form name='imgupF' id='imgupF' action="" method="post" enctype="multipart/form-data">

<input type="hidden" name="sub" value="sub" />

<input type="file" name="img_up" id="img_up" />

<input type="submit" value="上传" />

</form>

--------------------------------------------------------------------------------------------

类文件:

<?php

//文件上传

class Upload

{

//是否需要上传

public $onoff=false;

//上传文件最大值

public $maxsize='';

//上传文件路径

public $uppath='';

//错误代号

public $error=0;

//错误信息

public $error_info;

//检查文件格式信息

public $checkinfo='';

//方法反馈信息

public $reinfo='';

//上传的文件

public $upfile="";

//其他信息变量

//图片上传方法带参数 Up_Images(开关,上传的文件,上传路径,上传类型,最大大小)

public function Up_Images($onoff,$upfile,$uppath,$file_type,$maxsize)

{

if($onoff)

{

$check=Upload::CheckFileType($upfile,$file_type,$maxsize);

if($check=='ok')

{

$postfix=array_reverse(explode(".",$upfile['name']));  //获取文件后缀名

$savepath=$uppath.date("Ymd_His",time()).".".$postfix[0];//设置文件上传的地址

if(move_uploaded_file($upfile['tmp_name'],$savepath))

{

$check=$savepath;

}

else

{

$check=Upload::Error(99);

}

}

}

return $check;

}

//判断上传的文件类型及文件的大小 带参数CheckFileType(需验证的文件,文件类型,大小验证)

public function CheckFileType($upfile,$file_type,$maxsize)

{

$checkinfo=0;

switch ($file_type)

{

case 'images':

//图片格式和大小判断

if($upfile['type']!='image/pjpeg' && $upfile['type']!='image/jpeg' && $upfile['type']!='image/png' && $upfile['type']!='image/x-png' && $upfile['type']!='image/gif')

{ $checkinfo=Upload::Error(101); break; }

else if($upfile['size']>$maxsize*1024*1024)

{ $checkinfo=Upload::Error(102); break; }

else

{ $checkinfo='ok'; break; }

break;

default:

$checkinfo=Upload::Error(100);

break;

}

return $checkinfo;

}

//错误提示信息反馈 带参数 Error(错误代号)

public function Error($error)

{

$error_info='';

switch ($error)

{

case 101:

$error_info="图片格式不正确!/n只支持jpg、gif、png三种格式图片 /n错误代号:101";

break;

case 102:

$error_info="上传文件太大/n最大大小:".$maxsize." /n错误代号:102:";

break;

case 100:

$error_info="当前上传文件损坏或无法识别,您需要重新选择上传文件! /n错误代号:100:";

break;

case 99:

$error_info="无法将文件上传到指定路径!/n解决方案:/n1:请检查该路径是否存在/n2:检查该路劲是否具备读写权限! /n错误代号:99:";

default:

$error_info="未知的错误!/n错误代号:未知";

break;

}

return $error_info;

}

}

?>