회원이미지를 사업자등록증으로 변경하여 사용하려고하는데요! 채택완료
굼떠
1개월 전
조회 167
용량제한만 두고 가로세로 사이즈 제한은 안 둘 수 있는 방법 있을까요?
요즘 스마트폰이다 사진 크기가 천차만별이라서요! 업로드 버튼 클릭하고 열었을 때 용량 경고창 뜨는 기능도 붙어있습니다. + pdf도 추가하고싶은데 혹시 아시는 분 계시면 조언 부탁드립니다!
</p>
<p>//register_form_update.php</p>
<p><script></p>
<p>document.addEventListener('DOMContentLoaded', function() {</p>
<p> const iconInput = document.getElementById('reg_mb_icon');</p>
<p> const imgInput = document.getElementById('reg_mb_img');</p>
<p> </p>
<p> if (iconInput) {</p>
<p> iconInput.addEventListener('change', function() {</p>
<p> const maxIconSize = <?php echo $config['cf_member_icon_size'] ?>;</p>
<p> checkFileSize(this, maxIconSize);</p>
<p> });</p>
<p> }</p>
<p> </p>
<p> if (imgInput) {</p>
<p> imgInput.addEventListener('change', function() {</p>
<p> const maxImgSize = <?php echo $config['cf_member_img_size'] ?>;</p>
<p> checkFileSize(this, maxImgSize);</p>
<p> });</p>
<p> }</p>
<p> </p>
<p> function checkFileSize(fileInput, maxSize) {</p>
<p> if (fileInput.files.length === 0) {</p>
<p> return;</p>
<p> }</p>
<p> </p>
<p> const fileSize = fileInput.files[0].size;</p>
<p> </p>
<p> if (fileSize > maxSize) {</p>
<p> // 바이트(Byte)를 킬로바이트(KB)로 변환</p>
<p> const maxSizeKB = (maxSize / 1024).toLocaleString();</p>
<p> </p>
<p> // 경고 메시지에 동적으로 변환된 용량 표시</p>
<p> alert(maxSizeKB + 'KB 이하만 업로드 가능합니다.');</p>
<p> </p>
<p> fileInput.value = ''; // 파일 선택 취소</p>
<p> }</p>
<p> }</p>
<p>});</p>
<p></script></p>
<p> <li class="reg_mb_img_file"></p>
<p> <label for="reg_mb_img" class="frm_label"></p>
<p> 사업자등록증 첨부</p>
<p> <button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button></p>
<p> <span class="tooltip">이미지 크기는 가로 <?php echo $config['cf_member_img_width'] ?>픽셀, 세로 <?php echo $config['cf_member_img_height'] ?>픽셀 이하로 해주세요.
</p>
<p> gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_member_img_size']) ?>바이트 이하만 등록됩니다.</span></p>
<p> </label></p>
<p> <input type="file" name="mb_img" id="reg_mb_img"></p>
<p> </p>
<p> <?php if ($w == 'u' && file_exists($mb_img_path)) { ?></p>
<p> <img src="<?php echo $mb_img_url ?>" alt="사업자등록증 첨부"></p>
<p> <input type="checkbox" name="del_mb_img" value="1" id="del_mb_img"></p>
<p> <label for="del_mb_img" class="inline">삭제</label></p>
<p> <?php } ?></p>
<p> </p>
<p> </li></p>
<p> </p>
<p>//register_form_update.php</p>
<p> </p>
<p>// 회원 프로필 이미지</p>
<p>if( $config['cf_member_img_size'] && $config['cf_member_img_width'] && $config['cf_member_img_height'] ){</p>
<p> $mb_tmp_dir = G5_DATA_PATH.'/member_image/';</p>
<p> $mb_dir = $mb_tmp_dir.substr($mb_id,0,2);</p>
<p> if( !is_dir($mb_tmp_dir) ){</p>
<p> @mkdir($mb_tmp_dir, G5_DIR_PERMISSION);</p>
<p> @chmod($mb_tmp_dir, G5_DIR_PERMISSION);</p>
<p> }</p>
<p> </p>
<p> // 아이콘 삭제</p>
<p> if (isset($_POST['del_mb_img'])) {</p>
<p> @unlink($mb_dir.'/'.$mb_icon_img);</p>
<p> }</p>
<p> </p>
<p> // 회원 프로필 이미지 업로드</p>
<p> $mb_img = '';</p>
<p> if (isset($_FILES['mb_img']) && is_uploaded_file($_FILES['mb_img']['tmp_name'])) {</p>
<p> </p>
<p> $msg = $msg ? $msg."\\r\\n" : '';</p>
<p> </p>
<p> if (preg_match($image_regex, $_FILES['mb_img']['name'])) {</p>
<p> // 아이콘 용량이 설정값보다 이하만 업로드 가능</p>
<p> if ($_FILES['mb_img']['size'] <= $config['cf_member_img_size']) {</p>
<p> @mkdir($mb_dir, G5_DIR_PERMISSION);</p>
<p> @chmod($mb_dir, G5_DIR_PERMISSION);</p>
<p> $dest_path = $mb_dir.'/'.$mb_icon_img;</p>
<p> move_uploaded_file($_FILES['mb_img']['tmp_name'], $dest_path);</p>
<p> chmod($dest_path, G5_FILE_PERMISSION);</p>
<p> if (file_exists($dest_path)) {</p>
<p> $size = @getimagesize($dest_path);</p>
<p> if (!($size[2] === 1 || $size[2] === 2 || $size[2] === 3)) { // gif jpg png 파일이 아니면 올라간 이미지를 삭제한다.</p>
<p> @unlink($dest_path);</p>
<p> } else if ($size[0] > $config['cf_member_img_width'] || $size[1] > $config['cf_member_img_height']) {</p>
<p> $thumb = null;</p>
<p> if($size[2] === 2 || $size[2] === 3) {</p>
<p> //jpg 또는 png 파일 적용</p>
<p> $thumb = thumbnail($mb_icon_img, $mb_dir, $mb_dir, $config['cf_member_img_width'], $config['cf_member_img_height'], true, true);</p>
<p> if($thumb) {</p>
<p> @unlink($dest_path);</p>
<p> rename($mb_dir.'/'.$thumb, $dest_path);</p>
<p> }</p>
<p> }</p>
<p> if( !$thumb ){</p>
<p> // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제</p>
<p> @unlink($dest_path);</p>
<p> }</p>
<p> }</p>
<p> //=================================================================\</p>
<p> }</p>
<p> } else {</p>
<p> $msg .= '회원이미지을 '.number_format($config['cf_member_img_size']).'바이트 이하로 업로드 해주십시오.';</p>
<p> }</p>
<p> </p>
<p> } else {</p>
<p> $msg .= $_FILES['mb_img']['name'].'은(는) gif/jpg 파일이 아닙니다.';</p>
<p> }</p>
<p> }</p>
<p>}</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
플라이
Expert
1개월 전
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['mb_img']['size'] <= $config['cf_member_img_size']) {
해당 부분을 주석 처리하거나 해서 사이즈 체크를 제한을 푸시고
if (preg_match($image_regex, $_FILES['mb_img']['name'])) {
$image_regex = "/(\.(gif|jpe?g|png))$/i"; 이 부분의 확장자를 추가해서 적용하셔서 처리가 가능한 부분입니다.
이 부분이 이미지 파일의 파일명 체크하는 부분인데 pdf 확장자를 추가해서 적용해 보세요
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
굼떠
1개월 전
감사합니다! 저의 경우엔 용량 말고 가로세로 사이즈 제한을 푸는게 필요했어서 해당부분 다음에서 주석처리하였습니다!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인