회원이미지를 사업자등록증으로 변경하여 사용하려고하는데요!

회원이미지를 사업자등록증으로 변경하여 사용하려고하는데요!

QA

회원이미지를 사업자등록증으로 변경하여 사용하려고하는데요!

본문

용량제한만 두고 가로세로 사이즈 제한은 안 둘 수 있는 방법 있을까요?

요즘 스마트폰이다 사진 크기가 천차만별이라서요! 업로드 버튼 클릭하고 열었을 때 용량 경고창 뜨는 기능도 붙어있습니다. + pdf도 추가하고싶은데 혹시 아시는 분 계시면 조언 부탁드립니다!


//register_form_update.php
<script>
document.addEventListener('DOMContentLoaded', function() {
    const iconInput = document.getElementById('reg_mb_icon');
    const imgInput = document.getElementById('reg_mb_img');
   
    if (iconInput) {
        iconInput.addEventListener('change', function() {
            const maxIconSize = <?php echo $config['cf_member_icon_size'] ?>;
            checkFileSize(this, maxIconSize);
        });
    }
 
    if (imgInput) {
        imgInput.addEventListener('change', function() {
            const maxImgSize = <?php echo $config['cf_member_img_size'] ?>;
            checkFileSize(this, maxImgSize);
        });
    }
 
    function checkFileSize(fileInput, maxSize) {
        if (fileInput.files.length === 0) {
            return;
        }
 
        const fileSize = fileInput.files[0].size;
 
        if (fileSize > maxSize) {
            // 바이트(Byte)를 킬로바이트(KB)로 변환
            const maxSizeKB = (maxSize / 1024).toLocaleString();
           
            // 경고 메시지에 동적으로 변환된 용량 표시
            alert(maxSizeKB + 'KB 이하만 업로드 가능합니다.');
           
            fileInput.value = ''; // 파일 선택 취소
        }
    }
});
</script>
 <li class="reg_mb_img_file">
                    <label for="reg_mb_img" class="frm_label">
                        사업자등록증 첨부
                        <button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
                        <span class="tooltip">이미지 크기는 가로 <?php echo $config['cf_member_img_width'] ?>픽셀, 세로 <?php echo $config['cf_member_img_height'] ?>픽셀 이하로 해주세요.<br>
                        gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_member_img_size']) ?>바이트 이하만 등록됩니다.</span>
                    </label>
                    <input type="file" name="mb_img" id="reg_mb_img">
   
                    <?php if ($w == 'u' && file_exists($mb_img_path)) {  ?>
                    <img src="<?php echo $mb_img_url ?>" alt="사업자등록증 첨부">
                    <input type="checkbox" name="del_mb_img" value="1" id="del_mb_img">
                    <label for="del_mb_img" class="inline">삭제</label>
                    <?php }  ?>
               
                </li>
 
//register_form_update.php
 
// 회원 프로필 이미지
if( $config['cf_member_img_size'] && $config['cf_member_img_width'] && $config['cf_member_img_height'] ){
    $mb_tmp_dir = G5_DATA_PATH.'/member_image/';
    $mb_dir = $mb_tmp_dir.substr($mb_id,0,2);
    if( !is_dir($mb_tmp_dir) ){
        ($mb_tmp_dir, G5_DIR_PERMISSION);
        @chmod($mb_tmp_dir, G5_DIR_PERMISSION);
    }
 
    // 아이콘 삭제
    if (isset($_POST['del_mb_img'])) {
        @unlink($mb_dir.'/'.$mb_icon_img);
    }
 
    // 회원 프로필 이미지 업로드
    $mb_img = '';
    if (isset($_FILES['mb_img']) && is_uploaded_file($_FILES['mb_img']['tmp_name'])) {
 
        $msg = $msg ? $msg."\\r\\n" : '';
 
        if (preg_match($image_regex, $_FILES['mb_img']['name'])) {
            // 아이콘 용량이 설정값보다 이하만 업로드 가능
            if ($_FILES['mb_img']['size'] <= $config['cf_member_img_size']) {
                ($mb_dir, G5_DIR_PERMISSION);
                @chmod($mb_dir, G5_DIR_PERMISSION);
                $dest_path = $mb_dir.'/'.$mb_icon_img;
                move_uploaded_file($_FILES['mb_img']['tmp_name'], $dest_path);
                chmod($dest_path, G5_FILE_PERMISSION);
                if (file_exists($dest_path)) {
                    $size = @getimagesize($dest_path);
                    if (!($size[2] === 1 || $size[2] === 2 || $size[2] === 3)) { // gif jpg png 파일이 아니면 올라간 이미지를 삭제한다.
                        @unlink($dest_path);
                    } else if ($size[0] > $config['cf_member_img_width'] || $size[1] > $config['cf_member_img_height']) {
                        $thumb = null;
                        if($size[2] === 2 || $size[2] === 3) {
                            //jpg 또는 png 파일 적용
                            $thumb = thumbnail($mb_icon_img, $mb_dir, $mb_dir, $config['cf_member_img_width'], $config['cf_member_img_height'], true, true);
                            if($thumb) {
                                @unlink($dest_path);
                                rename($mb_dir.'/'.$thumb, $dest_path);
                            }
                        }
                        if( !$thumb ){
                            // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                            @unlink($dest_path);
                        }
                    }
                    //=================================================================\
                }
            } else {
                $msg .= '회원이미지을 '.number_format($config['cf_member_img_size']).'바이트 이하로 업로드 해주십시오.';
            }
 
        } else {
            $msg .= $_FILES['mb_img']['name'].'은(는) gif/jpg 파일이 아닙니다.';
        }
    }
}

 

 

이 질문에 댓글 쓰기 :

답변 2

// 아이콘 용량이 설정값보다 이하만 업로드 가능
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 확장자를 추가해서 적용해 보세요

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

회원로그인

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