mirror of https://github.com/helloxz/imgurl.git
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							102 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
	
	
							102 lines
						
					
					
						
							3.4 KiB
						
					
					
				| <?php | |
|     //载入配置文件 | |
|     include_once("./class/class.user.php"); | |
|     //阻止用户直接访问 | |
| 	if( $_SERVER['HTTP_REFERER'] != $config['domain'] ) | |
| 	{ | |
| 		$basis->re_error('非法请求!'); | |
| 	} | |
|      | |
|     //检查用户是否登录 | |
|     $status = $basis->check($config); | |
| 
 | |
| 
 | |
|     //检查用户是否登陆来判断上传目录 | |
|     if($status == 'islogin') { | |
|         //设置上传路径 | |
|         $updir = $config['admindir']; | |
|     } | |
|     else{ | |
|         $updir = $config['userdir']; | |
|         //限制用户上传数量 | |
|         $basis->limitnum(); | |
|     } | |
| 
 | |
|     //获取上传者信息 | |
|     $ip = $basis->getip(); | |
|     $ua = $_SERVER['HTTP_USER_AGENT']; | |
|     $date = date('Y-m-d',time()); | |
|     //载入上传类 | |
|     include('./class/class.upload.php'); | |
| 
 | |
|     //上传方法 | |
|     $handle = new upload($_FILES['file']); | |
|     if ($handle->uploaded) { | |
|         $handle->file_new_name_body   = 'image_resized'; | |
|         //允许上传大小2m | |
|         $handle->file_max_size = '2097152'; | |
|         //允许的MIME类型,仅运行上传图片 | |
|         $handle->allowed = array('image/*'); | |
| 
 | |
|         // 当前月份 | |
|         $current_time = date('ym',time()); | |
|         //上传路径:目录 + 时间 | |
|         $handle->process('../'.$updir.'/'.$current_time."/"); | |
|         if ($handle->processed) { | |
|             //获取站点域名 | |
|             $domain = $config['domain']; | |
|             //生成文件hash | |
|             $fhash = hash_file("md5",$handle->file_dst_pathname,FALSE); | |
|             $fhash = substr($fhash,8,16); | |
|             //新的文件名(../temp/1804/\d64c8036c0605175.jpg) | |
|             $new_img = $handle->file_dst_path.$fhash.'.'.$handle->file_dst_name_ext; | |
|             //图片URL地址 | |
|             $imgurl = $domain.$updir.'/'.$current_time.'/'.$fhash.'.'.$handle->file_dst_name_ext; | |
|             //图片路径(temp/1804/d64c8036c0605175.jpg) | |
|             $imgdir = $updir.'/'.$current_time.'/'.$fhash.'.'.$handle->file_dst_name_ext; | |
| 
 | |
|             //判断文件是否已经存在 | |
|             if(!is_file($new_img)) { | |
|                 //对文件更名 | |
|                 rename($handle->file_dst_pathname,$new_img); | |
|             } | |
|             else{ | |
|                 //删除原始文件 | |
|                 unlink($handle->file_dst_pathname); | |
|             } | |
| 
 | |
|             //检查某张图片是否已经上传过,如果已经上传了,直接返回数据并终止操作 | |
|             $basis->isupload($imgdir); | |
| 
 | |
|             //没有上传过的图片,继续写入数据库 | |
|             $last_user_id = $database->insert("imginfo", [ | |
|                 "path"      =>  $imgdir, | |
|                 "ip"        =>  $ip, | |
|                 "ua"        =>  $ua, | |
|                 "date"      =>  $date, | |
|                 "dir"       =>  $updir, | |
|                 "compress"  =>  0, | |
|                 "level"     =>  0 | |
|             ]); | |
|             //返回最后的ID | |
|             $account_id = $database->id(); | |
|             //上传成功,返回json数据 | |
|             $redata = array( | |
|                 "code"      =>  1, | |
|                 "id"        =>  $account_id, | |
|                 "url"       =>  $imgurl, | |
|                 "width"     =>  $handle->image_dst_x, | |
|                 "height"    =>  $handle->image_dst_y | |
|             ); | |
|             echo $redata = json_encode($redata); | |
|             $handle->clean(); | |
|         } else { | |
|             //上传出现错误,返回报错信息 | |
|             $redata = array( | |
|                 "code"  =>  0, | |
|                 "msg"   =>  $handle->error | |
|             ); | |
|             echo json_encode($redata); | |
|         } | |
|     } | |
| ?>
 |