From 20bf949a173ad0e2cdaffc654c8cc25543a6a4e9 Mon Sep 17 00:00:00 2001 From: hide_d Date: Sun, 18 Feb 2018 00:54:20 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=EC=BD=98=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=EB=AA=85=EC=9D=84=20=EB=9E=9C=EB=8D=A4=ED=95=98=EA=B2=8C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- i_entrance/manage/deletePost.php | 27 ++++++++++++++---- i_entrance/manage/iconPost.php | 48 ++++++++++++++++++++++++++------ 2 files changed, 60 insertions(+), 15 deletions(-) diff --git a/i_entrance/manage/deletePost.php b/i_entrance/manage/deletePost.php index 724f5509..a80bdee6 100644 --- a/i_entrance/manage/deletePost.php +++ b/i_entrance/manage/deletePost.php @@ -8,23 +8,40 @@ require_once(ROOT.W.F_CONFIG.W.SESSION.PHP); // 외부 파라미터 -$dest = ROOT.W.D."pic/pic_{$SESSION->NoMember()}.jpg"; +$respone = []; $rs = $DB->Select('ID, PICTURE', 'MEMBER', "NO='{$SESSION->NoMember()}'"); + $member = $DB->Get($rs); -$dt = substr($member['PICTURE'], -8); + + +$picName = $member['PICTURE']; + +if($picName && strlen($picName) > 10){ + $dt = substr($picName, -8); + $picName = substr($picName, 0, -9); +} +else{ + $dt = '00000000'; +} + +$dest = ROOT.W.D."pic/{$picName}"; + $rf = date('Ymd'); $response['result'] = 'FAIL'; $response['msg'] = '요청이 올바르지 않습니다!'; + if($dt == $rf) { //갱신날짜 검사 $response['msg'] = '1일 1회 변경 가능합니다!'; $response['result'] = 'FAIL'; } else { $DB->Update('MEMBER', "PICTURE='', IMGSVR=0", "NO='{$SESSION->NoMember()}'"); - @unlink($dest); + if(file_exists($dest)){ + @unlink($dest); + } for($i=0; $i < $_serverCount; $i++) { if($SETTINGS[$i]->IsExist()) { @@ -42,6 +59,4 @@ if($dt == $rf) { } sleep(1); -echo json_encode($response); - - +echo json_encode($response); \ No newline at end of file diff --git a/i_entrance/manage/iconPost.php b/i_entrance/manage/iconPost.php index 0f508b45..cc88251f 100644 --- a/i_entrance/manage/iconPost.php +++ b/i_entrance/manage/iconPost.php @@ -8,15 +8,36 @@ require_once(ROOT.W.F_CONFIG.W.SESSION.PHP); // 외부 파라미터 // $_FILES['picture'] : 사진파일 +$defaultImg = 'default.jpg'; + $image = $_FILES['picture']; $ext = strrchr($image['name'], "."); $size = getImageSize($image['tmp_name']); -$dest = ROOT.W.D."pic/pic_{$SESSION->NoMember()}.jpg"; + + + +$imageType = $size[2]; + +$availableImageType = array('.jpg'=>IMAGETYPE_JPEG, '.png'=>IMAGETYPE_PNG, '.gif'=>IMAGETYPE_GIF); $rs = $DB->Select('ID, PICTURE', 'MEMBER', "NO='{$SESSION->NoMember()}'"); $member = $DB->Get($rs); -$dt = substr($member['PICTURE'], -8); + +$picName = $member['PICTURE']; +$newExt = array_search($imageType, $availableImageType, true); + +if($picName && strlen($picName) > 10){ + $dt = substr($picName, -8); + $picName = substr($picName, 0, -9); +} +else{ + $dt = '00000000'; +} + +$old_path = ROOT.W.D."pic/{$picName}"; + + $rf = date('Ymd'); $response['result'] = 'FAIL'; @@ -25,13 +46,9 @@ if(!is_uploaded_file($image['tmp_name'])) { //진짜 전송된 파일인지 검증 $response['msg'] = '업로드가 되지 않았습니다!'; $response['result'] = 'FAIL'; -} elseif($ext != '.jpg' && $ext != '.JPG') { +} elseif(!$newExt) { //확장자 검사 - $response['msg'] = '잘못된 확장자입니다!'; - $response['result'] = 'FAIL'; -} elseif($image['type'] != 'image/jpg' && $image['type'] != 'image/jpeg' && $image['type'] != 'image/pjpeg') { - //파일종류 검사 - $response['msg'] = 'jpg 파일이 아닙니다!'; + $response['msg'] = 'jpg, gif, png 파일이 아닙니다!'; $response['result'] = 'FAIL'; } elseif($image['size'] > 10000) { //파일크기 검사 @@ -47,11 +64,24 @@ if(!is_uploaded_file($image['tmp_name'])) { $response['result'] = 'FAIL'; } else { //이미지 저장 + + while(true){ + $newPicName = dechex(rand(0x000000f,0xfffffff)).$newExt; + $dest = ROOT.W.D."pic/{$newPicName}"; + if(file_exists($dest)){ + continue; + } + break; + } + if(!move_uploaded_file($image['tmp_name'], $dest)) { $response['msg'] = '업로드에 실패했습니다!'; $response['result'] = 'FAIL'; } else { - $pic = 'pic_'.$SESSION->NoMember().".jpg?={$rf}"; + if(file_exists($old_path)){ + @unlink($old_path); + } + $pic = "{$newPicName}?={$rf}"; $DB->Update('MEMBER', "PICTURE='{$pic}', IMGSVR=1", "NO='{$SESSION->NoMember()}'"); for($i=0; $i < $_serverCount; $i++) {