一个非常棒的上传附件函数
一个非常棒的上传附件函数(测试代码加亮功能)
出处:我爱PHP 作者: admin 阅读次数:80
版权申明:本站发布的原创文章或作品版权归我站和作者共有,如需转载,请注明出处和作者。本站所提供的插画,摄影作品,以及设计作品,如需使用,请与原作者联系,版权归原作者所有。
<?
function upload($file,$dir,$name)
{
//本函数只接受gif、jpg、png 格式的文件,不能上传其他格式的文件,如果要上传其他类型的文件请自行更改
//可以限定图片的体积和尺寸,不合要求的不能上传
//本函数能自动识别文件的类型,改为gif、jpg、png 扩展名的“假图片”不能上传
//只要是上述类型图片,本函数能够自动把文件的扩展名改为正确的扩展名
//file 的实参为提交表单中file 类型输入框的名称。例:<input name="upfile" type="file"> 中的 upfile 注意:前面无"$"号
//dir 为上传路径,默认为当前路径
//name 为要改成的目标文件名,当为空字符串表示不改名。
$max_size=512000; //500 KB
$max_w = 800; //最大宽度800像素
$max_h = 600; //最大高度600像素
$min_w = 400; //最小宽度400像素
$min_h = 300; //最小高度300像素
if($dir) //如果路径不是以"/"结尾则加上"/"
{ if(substr($dir,-1)!="/")
$dir=$dir."/";
}
if($name=="")
$name=$_FILES["$file"][name];
$len=strrpos($name,"."); //取得主文件名长度
if(!$len)
$len=strlen($name);
$name=substr($name,0,$len); //取得主文件名
//添加扩展名
if($_FILES["$file"][type]=="image/gif")
$name=$name.".gif";
if($_FILES["$file"][type]=="image/pjpeg")
$name=$name.".jpg";
if($_FILES["$file"][type]=="image/x-png")
$name=$name.".png";
//检查上传过程中是否出现错误
if($_FILES["$file"][error]) //当发生错误时
{
if(($_FILES["$file"][error]==1)||($_FILES["$file"][error]==2))
$info="您上传的文件太大了,超过了允许的范围!";
if($_FILES["$file"][error] ==3)
$info="上传过程中发生错误!文件只有部分被上传。";
if($_FILES["$file"][error] ==4)
$info="没有文件被上传。</font>";
if($_FILES["$file"][error] ==5)
$info="上传文件大小为零。";
}
else //当上传成功时
{
if(($_FILES["$file"][type]=="image/gif")||($_FILES["$file"][type]=="image/pjpeg")||($_FILES["$file"][type]=="image/x-png")) //是合法的文件类型时
{
if($_FILES["$file"][size]<=$max_size) //检查文件大小
{
$size=GetImageSize($_FILES["$file"][tmp_name]);
if(($size[0]<=$max_w)&&($size[0]>=$min_w)&&($size[1]<=$max_h)&&($size[1]>=$min_h)) //检查图片的长宽
{
//复制文件到指定位置。
copy($_FILES["$file"][tmp_name],$dir.$name); //复制文件,并改名
if(file_exists($dir.$name)) //检查是否上传成功
$info=$dir.$name."上传成功!";
else
$info="复制文件过程中出现错误!上传失败!";
}
else //图片尺寸不合适时
{
$info="图片尺寸不合适宽度".$min_w."-".$max_w."像素,高度".$min_h."-".$max_h."像素。";
}
}
else //文件超出限制时
{
$info="文件大小超过了限制,最大为".($max_size/1024)." KB";
}
}
else //文件类型非法时
{
$info="文件类型非法!限制为gif、jpg、png图片";
}
}
return "$info";
}
?>