标题:php 文件原生上传函数 出处:沧海一粟 时间:Wed, 14 Mar 2018 09:29:10 +0000 作者:jed 地址:http://www.dzhope.com/post/1095/ 内容: php 文件原生上传函数 //文件上传函数 /* *文件上传函数 *@param array $upfile 被上传的文件信息 例如:$_FILES['myfile']; *@param string $path 文件上传路径 *@param array $typelist 允许文件上传的类型 默认空数组 表示不限 *@param int $maxsize 允许上传的大小限制 默认0 表示不限 *@return array 返回两个关联数组 其中下标为error的值如果为true表示上传成功,false 表示失败 info下标 表示错误信息或者是文件名 */ function fileUpload($upfile,$path,$typelist=array(),$maxsize=0){ //初始化信息 $path=rtrim($path,"/")."/"; //定义一个返回结果 $res=['error'=>false,'info'=>'']; //2.判断文件上传错误号 if($upfile['error']>0){ switch($upfile['error']){ case 1:$error="上传的文件超过了 php.ini 中限制大小"; break; case 2:$error="上传文件的大小超过了 HTML 表单中限制的大小"; break; case 3:$error="文件只有部分被上传。"; break; case 4:$error="没有文件被上传。 "; break; case 6:$error="找不到临时文件夹。"; break; case 7:$error="文件写入失败"; break; default:$error="未知错误"; } $res['info']=$error; return $res; } //3.判断过滤文件的类型 if(count($typelist)>0){//你是否限制 //判断类型是否是typelist中的类型 if(!in_array($upfile['type'],$typelist)){ $res['info']="文件类型不符"; return $res; } } //4.文件上传大小是否满足 //上传文件大小 限制大小 if($maxsize>0 && $upfile['size']>$maxsize){ $res['info']="文件上传失败,原因:文件大小超出范围!"; return $res; } //5.随机文件名 $hz=pathinfo($upfile['name'],PATHINFO_EXTENSION); //var_dump($hz); do{ $newfile=date("YmdHis").rand(1000,9999).".".$hz; }while(file_exists($path.$newfile));//判断文件是否存在 //echo $newfile; //6.判断并执行上传 if(is_uploaded_file($upfile['tmp_name'])){ if(move_uploaded_file($upfile['tmp_name'],$path.$newfile)){ $res['info']=$newfile; $res['error']=true; }else{ $res['info']="文件上传错误!原因是:文件移动失败"; } }else{ $res['info']="不是有效的上传文件"; } return $res; } Generated by Bo-blog 2.1.1 Release