테스트 사이트 - 개발 중인 베타 버전입니다

썸네일 사진 등록하기 채택완료

니냐노 3년 전 조회 1,536

https://sir.kr/bbs/board.php?bo_table=g5_tip&wr_id=2153

여기서 수정을 하고 gif 사진만 되서 jpg png까지 먹이려고 하는데

 

 

오류가 떠서 난리입니다 ㅠㅠ

 

</p>

<pre>
 $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']) {
                @mkdir($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 파일이 아닙니다.';
        }
    }
}

$mb1_dir = G5_DATA_PATH.'/member_it/'.substr($mb_id,0,2);

// 회원사진 삭제
if (isset($_POST['del_mb_1'])) {
    @unlink($mb1_dir.'/'.$mb_id);
}

// 회원썸네일 업로드
$mb_1 = "";
if (is_uploaded_file($_FILES['mb_1']['tmp_name'])) {
    if (preg_match($image_regex, $_FILES['mb_1']['name'])) {
        // 아이콘 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES['mb_1']['size'] <= $config['cf_3']) {
            @mkdir($mb1_dir, G5_DIR_PERMISSION);
            @chmod($mb1_dir, G5_DIR_PERMISSION);
            $dest_path = $mb1_dir.'/'.$mb_1;
            move_uploaded_file($_FILES['mb_1']['tmp_name'], $dest_path);
            chmod($dest_path, G5_FILE_PERMISSION);
            if (file_exists($dest_path)) {
                //=================================================================\
                // 090714
                // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
                // 에러메세지는 출력하지 않는다.
                //-----------------------------------------------------------------
                $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_1'] || $size[1] > $config['cf_2']) {
                    $thumb = null;
                    if($size[2] === 2 || $size[2] === 3) {
                        //jpg 또는 png 파일 적용
                        $thumb = thumbnail($mb_icon_img, $mb_dir, $mb_dir, $config['cf_1'], $config['cf_2'], true, true);
                        if($thumb) {
                            @unlink($dest_path);
                            rename($mb_dir.'/'.$thumb, $dest_path);
                        }
                    }
                    if( !$thumb ){
                        // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                        @unlink($dest_path);
                    }
                }
                //=================================================================\
            }
        } else {
            $msg .= '회원사진을 '.number_format($config[cf_3]).'바이트 이하로 업로드 해주십시오.';
        }
    } else {
        $msg .= $_FILES['mb_1']['name'].'은(는) gif/jpg 파일이 아닙니다.';
    }
}</pre>

<p>

 

 

 
501번 오류 코드  move_uploaded_file($_FILES['mb_1']['tmp_name'], $dest_path);

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
3년 전

</p>

<p><span class="token variable">$dest_path</span> <span class="token operator">=</span> <span class="token variable">$mb1_dir</span><span class="token punctuation">.</span><span class="token single-quoted-string string">'/'</span><span class="token punctuation">.</span><span class="token variable">$mb_1</span><span class="token punctuation">; <--- 이게 이상하네요</span></p>

<p><span class="token variable">$dest_path</span> <span class="token operator">=</span> <span class="token variable">$mb1_dir</span><span class="token punctuation">.</span><span class="token single-quoted-string string">'/'</span><span class="token punctuation">.</span><span class="token variable">$mb_id</span><span class="token punctuation">; 이렇게 되어야겠죠</span></p>

<p>
 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

별로 어렵게 생각하지 마시구요.

예컨대 1.png 파일의 이름을 바꿔 1.gif 로 변경하여 시도해 보세요.

냑에서 사용하는 제 대표사진도 실은 모두 png 파일의 확장자명을 gif 로 바꿔치기 해서 사용중인 이미지입니다.ㅋ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

니냐노
3년 전
사용자가 넣어야 되는거라 무조건 jpg, png, gif로 해야됩니다
니냐노
3년 전
사용자한테 gif 로 바꿔치기해서 넣으세요 할수는 없는 부분이라서요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인