优化后的单文件上传函数
$fileInfo=@$_FILES['myFile'];//接收表单上传的文件//5个参数中,第一个是必须,后面都有默认值upload($fileInfo,"626800",false,"imgs",array("txt"));functionupload($fileInfo,$maxSize=2097152,$flag=true,$path="upload",$allowedExt=array("jpeg","jpg","png","gif")){//$maxSize=2*1024*1024;//上传文件大小限制在2M内//$flag=true;//判断错误号if($fileInfo['error']>0){switch($fileInfo['error']){case1:$mes='上传文件超过了PHP配置文件中upload_max_filesize选项的值';break;case2:$mes='上传文件超过了表单MAX_FILE_SIZE限制的大小';break;case3:$mes='文件部分被上传';break;case4:$mes='没有选择要上传的文件';break;case6:$mes='没有找到临时目录';break;case7:case8:$mes='系统错误';break;}exit($mes);}//判断文件类型//$ext=strtolower(end(explode(".",$fileInfo['name'])));//得到后缀名,或者用下面的方法$ext=pathinfo($fileInfo['name'],PATHINFO_EXTENSION);//$allowedExt=array(//"jpeg",//"jpg",//"png",//"gif"//);//if(!is_array($allowedExt)){exit("文件扩展名不是数组");}if(!in_array($ext,$allowedExt)){exit("非法文件类型");}//print_r(getp_w_picpathsize($fileInfo['tmp_name']));exit;//判断是否是真实的图片文件类型,如果不需要做此检测可以设定$flag为falseif($flag){if(!getp_w_picpathsize($fileInfo['tmp_name'])){exit("上传文件不是真实的图片文件");}}//判断文件大小if($fileInfo['size']>$maxSize){exit("上传文件大小超过本站限制");}//是否是通过POST方式上传,需要检测的是临时文件//var_dump(is_uploaded_file($fileInfo['tmp_name']));exit;if(!is_uploaded_file($fileInfo['tmp_name'])){exit("非法上传方式");}//检测完毕后移动文件//$path="upload";if(!file_exists($path)){mkdir($path,0755,true);chmod($path,0755);}$uniqName=md5(uniqid(microtime(true),true)).".".$ext;$destination=$path."/".$uniqName;if(!@move_uploaded_file($fileInfo['tmp_name'],$destination)){//加上@是为了不显示溢出错误exit("文件上传失败");}echo"文件上传成功!";}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。