회원가입 이미지첨부

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
회원가입 이미지첨부

QA

회원가입 이미지첨부

본문

안녕하세요 guswjd님이 하신 소스 그대로 회원가입 이미지 첨부를 넣으려고 합니다.

아래 보시면 

 

skin 폴더의 register_form.skin.php



<tr>
               <th scope="row"><label for="reg_mb_4">관련서류첨부<br>(사업자등록증)</label></th>
               <td>
       <span class="frm_info" style="font-size:11px">
                       5M 이하의 이미지파일만 등록 가능 합니다.
                   </span>
     
                   <input type="file" name="mb_4" id="reg_mb_4" class="frm_input">
    <?php
    
    // 첨부파일 경로   
    $mb_4_path = G5_DATA_PATH.'/member/'.$member['mb_id'].'/'.$member['mb_4'];
    $mb_4_url  = G5_DATA_URL.'/member/'.$member['mb_id'].'/'.$member['mb_4'];
    
    if ($w == 'u' && file_exists($mb_4_path)) { ?>
                <br><a href="<?=$mb_4_url ?>" target="_target"><font color="red">사업자등록증</font></a>
                <input type="checkbox" name="del_mb_4" value="1" id="del_mb_4">
                <label for="del_mb_4">삭제</label>
                <?php }  ?>         
               </td>
           </tr>



 

bbs폴더의 register_form_update.php 파일에

 


// 첨부파일 경로
$mb_dir = G5_DATA_PATH.'/member/'.$mb_id;
// 파일 삭제 체크시
$filename2 = $member['mb_4'];
if (isset($_POST['del_mb_4'])) {
    @unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$filename2));
 $sql = " update {$g5['member_table']} set mb_4 ='' where mb_id='$mb_id'" ;
 sql_query($sql);
}
// 파일 업로드
$msg = "";
$mb_4 = '';
if (isset($_FILES['mb_4']) && is_uploaded_file($_FILES['mb_4']['tmp_name'])) {
    if (preg_match("/(\.gif|jpg|png|jpeg)$/i", $_FILES['mb_4']['name'])) {
        // 파일 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES['mb_4']['size'] <= $config['cf_member_icon_size']) {
            ($mb_dir, G5_DIR_PERMISSION);
            @chmod($mb_dir, G5_DIR_PERMISSION);
   $dest_path = $mb_dir.'/'.$_FILES['mb_4']['name'];
   // 수정시 기존파일 삭제
   $filename2 = $member['mb_4'];
   @unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$filename2));
   $sql = " update {$g5['member_table']} set mb_4 ='' where mb_id='$mb_id'" ;
   sql_query($sql);
   
   // 파일업로드
            move_uploaded_file($_FILES['mb_4']['tmp_name'], iconv("UTF-8","EUC-KR",$dest_path));
   chmod(iconv("UTF-8","EUC-KR",$dest_path), G5_FILE_PERMISSION);
           
   // 파일명 여분필드에 업데이트
   $filename = $_FILES['mb_4']['name'];
   $sql = " update {$g5['member_table']} set mb_4 ='$filename' where mb_id='$mb_id'" ;
   sql_query($sql);
   
        } else {
            $msg .= '첨부이미지를 5M 이하로 업로드 해주십시오.';
        }
    } else {
        $msg .= $_FILES['mb_4']['name'].'은(는) 이미지파일이 아닙니다.';
    }
}

 

adm 폴더의 member_form.php 파일에


<tr >
   <th scope="row">사업자등록증</th>
   <td colspan="3">
    <input id="mb_4" type="file" name="mb_4" class="frm_file w400">
    <?php
    if($mb['mb_4']) {
     $img_path = G5_DATA_URL.'/member/'.$mb['mb_id'].'/'.$mb['mb_4'];
    ?>
    <a href="<?php echo $img_path; ?>" target="_blank"><img src="<?php echo $img_path; ?>" width="200"></a>
    <?php } ?>
   </td>
 </tr>

 

라고 입력하고 회원가입을 하면

회원정보 확인 페이지에서

1889717659_1531991792.0659.jpg

 

뜨고

이미지없음 (주황색라인) 부분 클릭하면

 

Not Found

The requested URL /bbs/data/member/logo.png was not found on this server.

 

라고 에러창이 뜹니다.

 

폴더 권한 707 로 줬는데...

회원가입 설정에서 아이콘 용량도 5000000 으로 늘려주어도 안되는거 같습니다.

확인해보니 사진이름을 123.jpg숫자로 입력하면 정상적으로 나오는데

한글로 입력시 정상적으로 이미지를 못 불러드리고
db에는 정상적으로 이미지 이름이 적혀있습니다 ㅠㅠ 

 

 

추가로 RedUTF8를 통해 utf-8로도 변환을 하였습니다.

고수님들 부탁드리겠습니다. ㅠㅠ 

이 질문에 댓글 쓰기 :

답변 1

1번 : 한글이름으로 들어가서 깨지는 상황입니다. 그래서 회원이미지는 회원아이디로

       게시판은 g5_board_file에 원본이름 넣고 실제는 다른이름으로 저장해서 불러올때 처리합니다.

       해결하시려면

       1안) 게시판처럼 원본이름을 따로 저장하고 다운받을때 처리하는 로직을 만드시거나

       2안) 한글이름파일 경로를 사용하시려면 mod_url 아파치 모듈을 추가설치 하시거나

             호스팅회사에 문의하시기 바랍니다.

 

2번 : 이미지없음 (주황색라인) 부분 클릭하면 Not Found

        The requested URL /bbs/data/member/logo.png was not found on this server.

        는 



    <?php
    if($mb['mb_4']) {
     $img_path = G5_DATA_URL.'/member/'.$mb['mb_id'].'/'.$mb['mb_4'];
    ?>
    <a href="<?php echo $img_path; ?>" target="_blank"><img src="<?php echo $img_path; ?>" width="200"></a>
    <?php } ?>

    를

 



    <?php
    if(is_file($_SERVER['DOCUMENT_ROOT'].'/member/'.$mb['mb_id'].'/'.$mb['mb_4'])) {
     $img_path = G5_DATA_URL.'/member/'.$mb['mb_id'].'/'.$mb['mb_4'];
    ?>
    <a href="<?php echo $img_path; ?>" target="_blank"><img src="<?php echo $img_path; ?>" width="200"></a>
    <?php } ?>

으로 바꾸어 보고 테스트하시기 바랍니다.

       

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

회원로그인

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