회원사진 업로드

회원사진 업로드

QA

회원사진 업로드

본문

마이페이지에 회원사진 등록하게할려고하는 소스인데 회원가입할때 등록된 사진을 변경하기위해 마이페이지 edit에 새로운 사진을 등록하게할려고하는데 처음 등록된 사진그림이 나오고 다른 사진으로 변경하게할려는데 sumbit을 하면 date/member/회원폴더안에 jpg로 처음 등록했고 png로 다시 올렸는데 회원 사진 삭제하고 대체된사진이 안들어오고 폴더안에 두개의 파일이 나타납니다 삭제를하고 바뀐 사진으로 업로드하게할려면 어떻게 해야하나요?


<?php
// 회원 사진 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
if(!file_exists($mb_icon_path)){
 $mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.jpg';
 if(!file_exists($mb_icon_path)){
  $mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.png';
  if(!file_exists($mb_icon_path)){
   $mb_icon_path = "";
  }
 }
}
$expander = substr($mb_icon_path, -3);
$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.'.$expander;

?>
<form name="fregisterform" id="fregisterform" action="<?php echo $register_action_url ?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
<div class="m01">
        
  <tr>
   <th scope="row"><label for="reg_mb_icon">Image</label></th>
           <td>
     <span class="frm_info">
                   <?php echo $config['cf_member_icon_width'] ?> <?php echo $config['cf_member_icon_height'] ?>
                   <?php echo number_format($config['cf_member_icon_size']) ?>
       
          </span>
       <div id="divFake">
               <input id="reg_mb_icon" name="mb_icon" type="file"  class="frm_input" style="font-size: 80px; position: absolute;right:0px;top:0px; opacity:0; filter: alpha(opacity=0);cursor: pointer;"/> 
               <? if (file_exists($mb_icon_path)){?>
       <img src="<?=$mb_icon_url;?>">
        <?}else{?>
        <img src="/board/mobile/skin/board/mypage/img/photo.gif"style="width: 150px; height :150px;  alt=찾아보기"align="center "/>
        <?}?>
        </div>
               <? if (file_exists($mb_icon_path)) {  ?>
                <input type="hidden" name="del_mb_icon" value="1" id="del_mb_icon">
                <?php }  ?>
       
            </td>
    </th>
        </tr>
    </div>
  <input type="submit" value="<?php echo $w==''?'Edit':'정보수정'; ?>" id="btn_submit" class="btn_submit" accesskey="s">
 </form>
 
<?

// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2);
// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
  @unlink($mb_icon_path);
}
$msg = "";
// 아이콘 업로드
$mb_icon = '';
if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
    if (preg_match("/(\.gif|png|jpg?)$/i", $_FILES['mb_icon']['name'])) {
        // 아이콘 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES['mb_icon']['size'] <= $config['cf_member_icon_size']) {
      $explode_name = explode('.',$_FILES['mb_icon']['name']);
            $dest_path = $mb_dir.'/'.$member['mb_id'].'.'.$explode_name[1];
            @mkdir($mb_dir, G5_DIR_PERMISSION);
            @chmod($mb_dir, G5_DIR_PERMISSION);
            move_uploaded_file($_FILES['mb_icon']['tmp_name'], $dest_path);
            chmod($dest_path, G5_FILE_PERMISSION);
            if (file_exists($dest_path)) {
                //=================================================================\
                // 090714
                // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
                // 에러메세지는 출력하지 않는다.
                //-----------------------------------------------------------------
                $size = getimagesize($dest_path);
                //if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.
                //    @unlink($dest_path);
                //else
                // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height'])
                    @unlink($dest_path);
                //=================================================================\
            }
        } else {
            $msg .= '회원아이콘을 '.number_format($config['cf_member_icon_size']).'바이트 이하로 업로드 해주십시오.';
        }
    } else {
        $msg .= $_FILES['mb_icon']['name'].'은(는) gif 파일이 아닙니다.';
    }
}
?>


 

        
		
         

이 질문에 댓글 쓰기 :

답변 3

위 소스는 화일명이 무엇이며 어디서 실행 되는 것인가요?

사진 등록 소스가 폼 아래쪽에 나오는 것이 이상해 보이긴 하지만

위 소스만으로 보았을 때 60행에 추가 해주면 될 것 같아보입니다

@unlink($mb_icon_path);

 

몇일전 제가 구현했던 내용과 동일하네요.

그누는 기본적으로 gif파일만 업로드 되요.

gif 이외의 jpg, png 파일을 업로드하고 싶으신거죠.


방법.
회원정보가입스킨에 보면게사진을 자바스크립트로 gif만 업로가능하게 한부분을 jpg, png도 업로드가능하게 수정해주세요.

이제 bbs 디렉토리에서 회원정보 수정실행 파일에서
jpg, png 파일도 업로드가능하게 수정요.
기존 gif이외에 jpg, png 도 가능하게 추가.
또한, gif 파일이외의  파일은 삭제하게한 코드에 jpg, png 도 추가해주세요.

지금 제가 인천가는 중이라 스마트폰으로 작성해서 코드를 못어드려요^^

^^ 아니요 우선 gif jpg png구현은 다했어요 회원가입할때 사진 업로드시 gif jpg png이건 다되구요
그리고 data/member/각 회원아이디 폴더생성/ 안에 이미지 까지 되요 문제는 회원가입후 마이페이지라는 곳에서 이밎 변경을하거나 이미지 업로드안된회원이 이미지를 가입 후 업로드할때 구현한건데 이미 화원 이미지 등록한 아이디로 새로운 이미지로 변경할려는데 전에 이미지가 삭제가안되고 새로생기고 새로생긴 이미지는 출력이 안되고 전에있던이미지만 나와요^^

답변을 작성하시기 전에 로그인 해주세요.
전체 299
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT