회원가입 이미지첨부

회원가입 이미지첨부

QA

회원가입 이미지첨부

답변 1

본문

안녕하세요 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 } ?>

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

       

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 674
© SIRSOFT
현재 페이지 제일 처음으로