<?php $fileinfo=$_FILES["myfile"]; function uploadfile($fileinfo,$allowext=array(‘jpeg‘,‘jpg‘,‘pnd‘,‘gif‘,‘wbmp‘),$flag=true,$maxsize=2097152){ //判断错误信息 if($fileinfo[‘error‘]>0) { switch($fileinfo[‘error‘]) { case 1: $mes= "上传文件超过了PHP配置文件中upload_max_filesize选项的值"; break; case 2: $mes= "超过了表单MAX_FILE_SIZE的限制大小"; break; case 3: $mes= "文件部分被上传"; break; case 4: $mes= "没有选择上传文件"; break; case 6: $mes= "没有找到临时目录"; break; case 7: case 8: $mes= "系统错误"; break; } exit($mes); } //判断上传文件类型是不是在规定类型中 $allowext=array(‘jpeg‘,‘jpg‘,‘pnd‘,‘gif‘,‘wbmp‘); //定义一下允许的上传文件类型 $ext=strtolower(end(explode(‘,‘,$fileinfo[‘name‘])));//截取上传文件扩展名 if(!in_array($ext,$allowext)) // 判断上传文件的扩展名是不是在定义类型中 { exit(‘非法文件类型‘); } //判断上传文件大小 $maxsize=2097152; //写最大的字节数,自己算 if($fileinfo[‘size‘]>$maxsize) { exit(‘上传文件过大‘); } //判断文件是否是通过HTTP POST方式上传上来的 if(!is_uploaded_file($fileinfo[‘tmp_name‘])) { exit(‘文件不是通过HTTP POST方式上传上来的‘); } //检测是否为真实的图片类型,而不是认为改动的 $flag=true; if($flag) { if(!getimagesize($fileinfo[‘tmp_name‘])) { echo "不是真实的图片类型"; } } //判断服务器上存储的文件夹在不在 $path=‘uploads‘; //服务器上存储文件的文件名 if(!file_exists($path)) { mkdir($path,0777,true);//不存在就创建一个目录 chmod($path,0777);//加一个权限 } $uniname=md5(uniqid(microtime(true),true)).‘.‘.$ext; //通过MD5加密等措施给文件名取名,产生唯一文件名 $destination=$path.‘/‘.$uniname; if(!move_uploaded_file($fileinfo[‘tmp_name‘],$destination)) //上传文件 { echo "文件上传失败"; } return array( ‘newname‘=>$destination, ‘size‘=>$fileinfo[‘size‘], ‘type‘=>$fileinfo[‘type‘] ); }
时间: 2024-10-03 16:44:25