회원가입 이미지첨부 채택완료
안녕하세요 guswjd님이 하신 소스 그대로 회원가입 이미지 첨부를 넣으려고 합니다.
아래 보시면
skin 폴더의 register_form.skin.php
</p>
<pre>
<code><tr>
<th scope="row"><label for="reg_mb_4">관련서류첨부
(사업자등록증)</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)) { ?>
<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>
</code>
</pre>
<p>
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']) {
@mkdir($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'].'은(는) 이미지파일이 아닙니다.';
}
}<font color="#000000" face="Arial"><span style="font-size: 13.3333px; background-color: rgb(239, 239, 239);">
</span></font></code>
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']) { </code>$img_path = G5_DATA_URL.'/member/'.$mb['mb_id'].'/'.$mb['mb_4'];<code> ?> <a href="<?php echo $img_path; ?>" target="_blank"><img src="<?php echo $img_path; ?>" width="200"></a> <?php } ?> </td> </tr><font color="#000000" face="Arial"><span style="font-size: 13.3333px; background-color: rgb(239, 239, 239);"> </span></font></code></pre> <p><code>
라고 입력하고 회원가입을 하면
회원정보 확인 페이지에서
https://sir.kr/data/editor/1807/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.
는
</span></font></p>
<pre>
<code> <?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 } ?></code></pre>
<p><font face="monospace"><span style="font-size: 11.7px;">
를
</span></font></p>
<pre>
<code> <?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 } ?></code></pre>
<p><font face="monospace"><span style="font-size: 11.7px;">
으로 바꾸어 보고 테스트하시기 바랍니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인