회원가입시 여분필드 첨부파일 크기 줄이기

회원가입시 여분필드 첨부파일 크기 줄이기

QA

회원가입시 여분필드 첨부파일 크기 줄이기

답변 1

본문

회원가입시에 mb_10으로 register_form_update.php 하단처럼 추가해서 이미지를 받았습니다.

 

큰 이미지를 첨부하더라도 width가 1000픽셀로 받으려면 어찌해야할까요?

 

$mb_10 = '';

 

if (isset($_FILES['mb_10']) && is_uploaded_file($_FILES['mb_10']['tmp_name'])) {

    if (preg_match("/(\.gif|jpg|png|jpeg)$/i", $_FILES['mb_10']['name'])) {

 

        // 파일 용량이 설정값보다 이하만 업로드 가능

            ($mb_dir, G5_DIR_PERMISSION);

            @chmod($mb_dir, G5_DIR_PERMISSION);

$dest_path = $mb_dir.'/'.$_FILES['mb_10']['name'];

 

// 수정시 기존파일 삭제

$filename2 = $member['mb_10'];

@unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$filename2));

$sql = " update {$g5['member_table']} set mb_10 ='' where mb_id='$mb_id'" ;

sql_query($sql);

 

// 파일업로드

 move_uploaded_file($_FILES['mb_10']['tmp_name'], iconv("UTF-8","EUC-KR",$dest_path));

chmod(iconv("UTF-8","EUC-KR",$dest_path), G5_FILE_PERMISSION);

            

// 파일명 여분필드에 업데이트

$filename = $_FILES['mb_10']['name'];

$sql = " update {$g5['member_table']} set mb_10 ='$filename' where mb_id='$mb_id'" ;

sql_query($sql);

 

    } else {

        $msg .= $_FILES['mb_10']['name'].'은(는) 이미지파일이 아닙니다.';

    }

}

이 질문에 댓글 쓰기 :

답변 1

회원 프로필 이미지 업로드 하는 부분인데 이거 참조해보세요.

 

// 회원 프로필 이미지
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 파일이 아닙니다.';
        }
    }
}

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 410
© SIRSOFT
현재 페이지 제일 처음으로