自己早期写的一个图片上传类,拿出来献丑了。他可以自动检索上传的表单,不需要指定表单name。他有个默认图片存放路径,也可以自己指定,指定后的目录会自动创建。也可以限制格式和大小。也可以指定图片的名字,不指定以当前时间为图片的名字。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<?php /** * @title 图片处理上传类 * @author zhangcunchao * */ class UploadImage{ /** * dir 文件上传后的存储目录 * filetype 允许上传的文件类型,默认为jpg,gif,png的图片格式 * size 允许上传的文件的大小 ,默认为空,不限制 * * @return array image 文件的存储目录,error有值表示上传失败。 error 1 文件大小超过配置文件中的限制,error 2上传文件大小不符合要求 */ function upFile($dir='image/',$filetype='',$size='',$newname=''){ foreach($_FILES as $key=>$value){ $file = $key; break; } if('0'==$_FILES["$file"]['error']){ switch ($filetype) { case 1:$filetype='application/octet-stream';break;//压缩类型 case 2:$filetype='text/plain,application/pdf,application/msword';break;//txt,pdf,doc类型 default:$filetype='image/jpeg,image/gif,image/png';//图片类型 } //判断上传文件的类型 if(substr_count($filetype,$_FILES["$file"]['type'])){ //如果限制了文件大小则判断文件的大小 if(!empty($size)){ if($_FILES["$file"]['size']>$size){ return $result['error']='上传文件的大小不符合要求'; } } //执行上传 if(empty($newname)){ $hou = strrchr($_FILES["$file"]['name'],'.'); $newname = date('YmdHis',time()).$hou; $upload = $dir.$newname; } $n_dir = explode('/',$dir); $w_dir=''; foreach($n_dir as $k=>$v){ $w_dir .= $v; if(!is_dir($w_dir)){ mkdir($w_dir); } $w_dir .='/'; } if(is_uploaded_file($_FILES["$file"]['tmp_name'])){ if(move_uploaded_file($_FILES["$file"]['tmp_name'],$upload)){ return $upload; } else{ return $result['error'] = '上传失败'; } } }else{ return $result['error']='上传文件的类型不符合要求'; } }else{ switch ($_FILES["$file"]['error']) { case 1:$tmp='上传文件大小超出配置文件中的限制';break; case 2:$tmp='上传文件大小超出HTML表单中max_file_size的限制';break; case 3:$tmp='文件只上传了一部分';break; case 4:$tmp='没有上传任何文件';break; } return $result['error'] = $tmp; } } } ?> |
程序本天成,妙手偶得之!我们只是代码的搬运工!
转载请注明:http://www.521php.com/archives/98/