프로그래밍/PHP

php thumbnail ratio image/이미지 비율업로드 관련처리

p-a-r-k 2017. 7. 10. 14:05
반응형

<input file/>로 받은 후, 


images.lib.zip사용.


<?php
	include_once($_SERVER[DOCUMENT_ROOT].'/common/Prog/images.lib.php');
	
	$usr_logo     = $_FILES['usr_logo'];
	$file_ext1 = explode(".", strrev($usr_logo["name"]));
	$file_ext1 = strrev($file_ext1[0]);

	$img_ok = array("gif", "png", "peg", "jpg", "jpeg", "bmp", "GIF", "PNG", "JPG", "JPEG", "BMP");


	/************ 이미지파일 체크 *************/
	if($usr_logo["tmp_name"] != ""){
		if(!in_array($file_ext1, $img_ok)){
			echo "로고이미지는 이미지파일만 업로드가능합니다.";
			exit;
		}
	}



	/************ 이미지사이즈 체크 *************/
	$imgSize = getimagesize($usr_logo['tmp_name']);
	$imgWidth = $imgSize[0];
	$imgHeight = $imgSize[1];
	 
	if($imgWidth != 200 || $imgHeight != 45){
		echo "로고이미지는 200x45사이즈만 가능합니다.";
		exit;
	}

	//db add query text
	$sql_imgfiles = '';

	//로고이미지가 있으면
	if(file_exists($usr_logo['tmp_name']) && is_uploaded_file($usr_logo['tmp_name'])) {
		$upfile_path = $_SERVER[DOCUMENT_ROOT]."/img/upfile/";
		$thumbS_width = 400; 
		$thumbS_height = 300;

		$tmp_file = $usr_logo[tmp_name];
		$filename = $usr_logo[name];

		if(!is_dir($upfile_path)){ // 업로드 디렉토리 생성
			echo exec("mkdir $upfile_path");
			exec("chmod 707 $upfile_path");
		}

		if(is_uploaded_file($tmp_file)) {
			//랜덤 파일명생성
			//str_replace('%', '', urlencode($filename)); 
			$filepath = date('Ymd') .'_'. abs(ip2long($_SERVER[REMOTE_ADDR])) .'_'. substr(md5(uniqid($server_time)), 0, 8).".".$file_ext1;

			$dest_file = $upfile_path. $filepath;
			$error_code = move_uploaded_file($tmp_file, $dest_file) or die($usr_logo[error][$i]);
			chmod($dest_file, 0606);
			$upload[$i][image] = @getimagesize($dest_file);
			
			if(img_type($dest_file)) {
				$srcimg = $filepath;
				$dstimg = "l_". $filepath;
				

				//썸네일 저장
				makeThumb($upfile_path, $filepath, $thumbS_width, $thumbS_height, $upfile_path, $dstimg, 'ratio');
				$sql_imgfiles .= " , usr_lOGO = '{$dstimg}' ";
			}
		}else{
			echo "<이미지 업로드에 실패했습니다.";
			exit;
		}
	}
?>


반응형