www.gusucode.com > 仿51.com的php源码 1.1 > User/upload.php
<?php class uploads { function upload_photo($user_dat, $globalvars) { $group=$_POST["group"]; $key=$_GET["key"]; $type=$_GET["type"]; $error_msg="";//先定义错误 if($_FILES['upfile1']['name'] != null) { $error_msg.=$this->upload_transfer_photo($user_dat, $globalvars, 'upfile1'); } else { echo "<script>alert('至少要选一张图片上传!');history.back();</script>"; exit(); } if($_FILES['upfile2']['name'] != null) { $error_msg.=$this->upload_transfer_photo($user_dat, $globalvars, 'upfile2'); } if($_FILES['upfile3']['name'] != null) { $error_msg.=$this->upload_transfer_photo($user_dat, $globalvars, 'upfile3'); } if($_FILES['upfile4']['name'] != null) { $error_msg.=$this->upload_transfer_photo($user_dat, $globalvars, 'upfile4'); } if($_FILES['upfile5']['name'] != null) { $error_msg.=$this->upload_transfer_photo($user_dat, $globalvars, 'upfile5'); } if($_FILES['upfile6']['name'] != null) { $error_msg.=$this->upload_transfer_photo($user_dat, $globalvars, 'upfile6'); } if($type=="Photo") { echo "<script>alert('上传完成!');window.parent.location.href='../Photo/PhotoUploadFinish.php?ord_id=$key&type=$type&group=$group&msg=$error_msg';</script>"; } if ($type=="Image") { echo "<script>alert('上传完成!');window.parent.location.href='../Image/ImageUploadFinish.php?ord_id=$key&type=$type&group=$group&msg=$error_msg';</script>"; } } function upload_transfer_photo($user_dat, $globalvars, $whichfile) { $error_occured = false; $uid=$_COOKIE['uid']; $type=$_GET["type"]; $filesize_limit = explode(':', $globalvars->settings['Photo_Max_upload']); $uploadmax_set = new functions(); switch($filesize_limit[1]) { case MB: $uploadmax = $uploadmax_set->mb_bytes($filesize_limit[0]); break; case KB: $uploadmax = $uploadmax_set->kb_bytes($filesize_limit[0]); break; } //得到最大上传 //echo "<i>" . $_FILES[$whichfile]['name'] . " 上传统计</i>:<br />"; /* switch($_FILES[$whichfile]['error']) { case 1: $error_occured = true; echo "<script>alert('您试图上传的文件的大小超过系统限制!');history.back();</script>"; break; case 2: $error_occured = true; echo "<script>alert('您试图上传的文件的大小超过系统限制');history.back();</script>"; break; } */ //查看大小 $file_big=$_FILES[$whichfile]['size']; if ($file_big>$uploadmax || $file_big==0) { $error_msg.="你所上传的".$_FILES[$whichfile]['name']."文件大小已超过2M了!"; $error_occured = true; } //查看类型 //$split_ext = explode(',', $globalvars->settings['allowed_ext']); $iext = Array('.jpg','.gif','.png'); $fext = strrchr(strtolower($_FILES[$whichfile]['name']), '.'); //$fext = strrchr(strtolower($_FILES[$whichfile]), '.'); //$fext = strtolower($_FILES[$whichfile]['name']); //echo $fext; //exit(); if (!in_array($fext,$iext)) { $error_msg.="您试图上传的".$_FILES[$whichfile]['name']."图片格式不在允许范围内!"; $error_occured = true; } //看空间情况 //查看所有空间 $sql_dirlimit = explode(':', $user_dat['space']); switch($sql_dirlimit[1]) { case MB: $dirsize_set = new functions(); $dirsize = $dirsize_set->mb_bytes($sql_dirlimit[0]); break; case KB: $dirsize_set = new functions(); $dirsize = $dirsize_set->kb_bytes($sql_dirlimit[0]); break; } if((int)($user_dat['usedspace']+$file_big) > (int)$dirsize) { $error_msg.="您已经用光了所有的目录空间!"; $error_occured = true; } //echo $uid; //exit(); //目录 $user_dat['usrdir'] $time=date("Y-m-d H:i:s",time()); $T=$user_dat['usrdir']; $TT=$T."/".$type; $TTT=$TT."/".date("Ym",strftime(time())); $TTTT=$TTT."/".date("d",strftime(time())); if(!is_dir($T)) { @mkdir($T,0777); } if (!is_dir($TT)) { @mkdir($TT,0777); } if (!is_dir($TTT)) { @mkdir($TTT,0777); } if (!is_dir($TTTT)) { @mkdir($TTTT,0777); } //生成文件名 $str=""; $arrays = array(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9); $keys = array_rand($arrays,36); for($i=$j;$i<36;$i++) { $str .= $arrays[$keys[$i]]; } if($error_occured != true) { if(move_uploaded_file($_FILES[$whichfile]['tmp_name'], $TTTT . "/" . $_FILES[$whichfile]['name'])) { $filname=$TTTT . "/" .$str . $fext; rename($TTTT . "/" . $_FILES[$whichfile]['name'],$filname); chmod($filname, 0777); $GDImg=new GDImage($TTTT . "/",$TTTT . "/","../authpage/"); $GDImg->toFile = true; //修改大图片大小 $filname=$GDImg->makeBig($str . $fext,800,600) ; //生成小图片 $TheSmall=$GDImg->makeThumb($str . $fext,149,119) ; $group=$_POST["group"]; $key=$_GET["key"]; $title=$_FILES[$whichfile]['name']; if ($type=="Photo") { $sql="insert into Photo (ord_id,User_Account,Photo_Big_Url,Photo_Sma_Url,Photo_Title,Photo_Group,Up_AddDate) values ('$key','$uid','$filname','$TheSmall','$title','$group','$time')"; $db=new DbConn(); $db->Execute($sql); } if ($type=="Image") { $sql="insert into image (ord_id,User_Account,Image_Big_Url,Image_Sma_Url,Image_Title,Image_Group,Up_AddDate) values ('$key','$uid','$filname','$TheSmall','$title','$group','$time')"; $db=new DbConn(); $db->Execute($sql); } } else { $error_msg.="未知错误!"; } } return $error_msg; } function new_upload_photo($user_dat, $globalvars) { if(isset ($_POST['new_user_upload'])) { if($_FILES['upfile1']['name'] != null) { //不给上传超出1M if ((int)$_FILES['upfile1']['size']>2097152) { echo "<script>alert('相片大小不能超出1M大小');history.back();</script>"; exit(); } $this->upload_transfer($user_dat, $globalvars, 'upfile1'); } else { echo "<script>alert('请选择一张图片上传!');history.back();</script>"; exit(); } } } function upload_transfer($user_dat, $globalvars, $whichfile) { $uid=$_COOKIE['uid']; $error_occured = false; //echo "<i>" . $_FILES[$whichfile]['name'] . " 上传统计</i>:<br />"; switch($_FILES[$whichfile]['error']) { case 1: $error_occured = true; echo "<script>alert('您试图上传的文件的大小超过系统限制');history.back();</script>"; break; case 2: $error_occured = true; echo "<script>alert('您试图上传的文件的大小超过系统限制');history.back();</script>"; break; } //查看类型 //$split_ext = explode(',', $globalvars->settings['allowed_ext']); $iext = Array('.jpg','.gif','.png'); $fext = strrchr(strtolower($_FILES[$whichfile]['name']), '.'); //$fext = strrchr(strtolower($_FILES[$whichfile]), '.'); //$fext = strtolower($_FILES[$whichfile]['name']); //echo $fext; //exit(); $invalidimg = false; if (!in_array($fext,$iext)) { $invalidimg = true; $error_occured = true; } if(is_dir($user_dat['usrdir'])) { //$sql_dirlimit = explode(':', $globalvars->settings['directory_limit']); $sql_dirlimit = explode(':', $user_dat['space']); switch($sql_dirlimit[1]) { case MB: $dirsize_set = new functions(); $dirsize = $dirsize_set->mb_bytes($sql_dirlimit[0]); break; case KB: $dirsize_set = new functions(); $dirsize = $dirsize_set->kb_bytes($sql_dirlimit[0]); break; } if($user_dat['usedspace'] < $dirsize) { // if(file_exists($user_dat['usrdir'] . "/" . $_FILES[$whichfile]['name'])) // { // if($_POST['overwrite_file'] == true) // { // unlink($user_dat['usrdir'] . "/" . $_FILES[$whichfile]['name']); // } else { // $error_occured = true; // echo "您试图上传的文件已经存在<br />请选择覆盖或者更改文件名重新上传.<br /><br />"; // } //} } else { $error_occured = true; echo "<script>alert('您已经用光了所有的目录空间.');history.back();</script>"; exit(); } } else { $error_occured = true; echo "<script>alert('目录不存在. 请联系管理员');history.back();</script>"; exit(); } if($error_occured != true) { if(move_uploaded_file($_FILES[$whichfile]['tmp_name'], $user_dat['usrdir'] . "/" . $_FILES[$whichfile]['name'])) { $filname=$user_dat['usrdir'] . "/" .date('Y-m-d-H-i-s',time()) . $fext; rename($user_dat['usrdir'] . "/" . $_FILES[$whichfile]['name'],$filname); chmod($filname, 0777); //修改成小图 $GDImg=new GDImage($user_dat['usrdir'] . "/",$user_dat['usrdir'] . "/","../authpage/"); $GDImg->toFile = true; //生成小图片 $TheSmall=$GDImg->makeBig(date('Y-m-d-H-i-s',time()) . $fext,149,119) ; //删除图片 if ($_POST["new_user_upload"]!="") { if($_POST["new_user_upload"]!="/images/nophoto.gif") { unlink($_POST["new_user_upload"]); } } //加入到数据库 $query_id=mysql_query("update userdata set face='$filname' WHERE User_Account='$uid'"); echo "<script>alert('图片上传成功.');location.href='MainInfoStep3.php';</script>"; } else { echo "<script>alert('未知错误.');history.back();</script>"; } } else { if($invalidimg == true) { echo "<script>alert('您试图上传的图片格式不在允许范围内.');history.back();</script>"; } } } } ?>