아이콘 업로드 하는 로직이요...... > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

아이콘 업로드 하는 로직이요...... 정보

아이콘 업로드 하는 로직이요......

본문

불당님팩쓰고있는데
아래코드가 원 코드인지 수정한건지는 모릅니다.......

gif 또는 jpg 다 받고
또 용량보다 작은지 검사한 후에

디렉토리만들고 파일올립니다.

근데 이해가 안되는것이, 
그 후에 악성코드방지랍시고
다시 gif아니면 다 지우거나.....................
용량보다 크면 다 지웁니다......................

첨부터 안받으면 되지 굳이 왜그럴까요???

========================================


    //if (preg_match("/(\.gif)$/i", $_FILES[mb_icon][name]))
    if (preg_match("/\.(jp[e]?g|gif|png|bmp)$/i", $_FILES[mb_icon][name]))
    {
        // 아이콘 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES[mb_icon][size] <= $config[cf_member_icon_size])
        {
            @mkdir($mb_dir, 0707);
            @chmod($mb_dir, 0707);
            $dest_path = "$mb_dir/$mb_id.gif";
            move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
            chmod($dest_path, 0606);
            if (file_exists($dest_path))
            {
                //=================================================================\
                // 090714
                // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
                // 에러메세지는 출력하지 않는다.
                //-----------------------------------------------------------------
                $size = getimagesize($dest_path);
                if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.
                    @unlink($dest_path);
                else
                 // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                 if ($size[0] > $config[cf_member_icon_width] || $size[1] > $config[cf_member_icon_height])
                     @unlink($dest_path);
                //=================================================================\
            }
        } else
        {
            $msg .= "{$_FILES[mb_icon][name]} 파일의 용량이 " . number_format($config[cf_member_icon_size]/1000) . "k 바이트보다 크므로 업로드 할 수 없습니다.\\n";
        }
    }

댓글 전체

아.. 확장자를 .gif로해도 getimagesize 에서 gif가 아니면 걸린다 말이네요...
모든 파일을 다 받고싶으면
 if ($size[2] != 1) 이부분을
 if ($size[2] != 1 && $size[2] !=21 && $size[2] != 3 && $size[2] != 4 )

이렇게 바꾸면 될까요??
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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