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>";
			}			
		}
		
	}
	
}
?>