<?php
/*
*
*文件上传处理函数
*@param string filename 要上传的文件表单项名
*@param string $path 上传文件保存路径
*@param array $typelist允许的文件类型
*@return array $res 两个单元:["error"] false:失败,true:成功
* {"info"} 存放失败原因或成功的文件名
*/
function uploadeFile($filename,$path,$typelist=null)
{
//1、获取要上传的名字
$upfile = $_FILES[$filename];
if(empty($typelist))
{
$typelist=array("image/gif","image/jpg","image/jpeg","image/png");//允许的文件类型
}
//$path="uploads";//指定上传的的保存路径(相对的)
$res=array("erroy"=>false);//存放返回的结果
//2、过滤上传文件的错误号
if($upfile["error"]>0)
{
switch($upfile["error"])
{
case 1:
$res["info"]="上传的文件超过了php.ini中uploade_max_filesize选项限制";
break;
case 2:
$res["info"] = "上传的文件的大小超过了HTMl表单中MAX_FILE_SIZE 选项";
break;
case 3:
$res["info"] = "文件只有部分被上传";
case 4:
$res["info"] = "没有文件被上传";
break;
case 6:
$res["info"] = "找不到临时文件";
break;
case 7:
$res["info"] = "文件写入失败";
break;
default:
$res["info"] = "未知错误!";
}
return $res;
}
//3.本次文件大小的限制
if($upfile["size"]>100000)
{
$res["info"] = "上传文件过大!";
}
//4、过滤类型
if(!in_array($upfile["type"],$typelist))
{
$res["info"] = "上传类型不符!".$upfile["type"];
}
//5、初始化下信息(为图片产生一个随机名字)
$fileinfo = pathinfo($upfile["name"]);
do{
$newfile = date("YmdHis").rand(1000,9999).".".$fileinfo["extension"];
}while(file_exists($newfile));
//6、执行上传处理
if(is_uploaded_file($upfile["tmp_name"]))
{
if(move_uploaded_file($upfile["tmp_name"],$path."/".$newfile))
{
//将上传成功后的文件名赋值给返回数组
$res["info"]=$newfile;
$res["error"]=true;
return $res;
}else{
$res["info"] = "上传文件失败!";
}
}else{
$res["info"] = "不是一个上传的文件";
}
return $res;
}
文件上传处理函数
最新推荐文章于 2021-12-04 00:15:48 发布