회원가입시 파일첨부
본문
회원가입시 회원아이콘이 현재는 gif 만 가능하게 되어 있는데요
이미지파일은 다 되게 할려면 어떻게 수정되어야 할까요..
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member/'.substr($mb_id,0,2);
// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
@unlink($mb_dir.'/'.$mb_id.'.gif');
}
$msg = "";
// 아이콘 업로드
$mb_icon = '';
if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name'])) {
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['mb_icon']['size'] <= $config['cf_member_icon_size']) {
@mkdir($mb_dir, G5_DIR_PERMISSION);
@chmod($mb_dir, G5_DIR_PERMISSION);
$dest_path = $mb_dir.'/'.$_FILES['mb_icon']['name'];
move_uploaded_file($_FILES['mb_icon']['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) // 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 .= '사업자등록증을 '.number_format($config['cf_member_icon_size']).'바이트 이하로 업로드 해주십시오.';
}
} else {
$msg .= $_FILES['mb_icon']['name'].'은(는) gif 파일이 아닙니다.';
}
}
답변 4
preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name']) => preg_match('/\.(gif|jpg|png|jpeg)$/', $_FILES['mb_icon']['name'])
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member/'.substr($mb_id,0,2);
// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
@unlink($mb_dir.'/'.$mb_id.'.gif');
}
$msg = "";
// 아이콘 업로드
$mb_icon = '';
if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (preg_match('/\.(gif|jpg|png|jpeg)$/', $_FILES['mb_icon']['name'])) {
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['mb_icon']['size'] <= $config['cf_member_icon_size']) {
@mkdir($mb_dir, G5_DIR_PERMISSION);
@chmod($mb_dir, G5_DIR_PERMISSION);
$dest_path = $mb_dir.'/'.$_FILES['mb_icon']['name'];
move_uploaded_file($_FILES['mb_icon']['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) // 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 .= '사업자등록증을 '.number_format($config['cf_member_icon_size']).'바이트 이하로 업로드 해주십시오.';
}
} else {
$msg .= $_FILES['mb_icon']['name'].'은(는) gif 파일이 아닙니다.';
}
}
!-->
파일 업로드할 때
preg_match('/\.(gif|jpg|png|jpeg)$/', $_FILES['mb_icon']['name']) 이런 형식으로 하시고
회원아이콘 경로를 아래와 같이 해보세요.
//회원 디렉토리
$mb_dir_name = substr($member['mb_id'],0,2);
//회원아이콘 검색
$mb_path = G5_DATA_PATH.'/member/'.$mb_dir_name;
$mb_arr = glob($mb_path.'/'.$member['mb_id'].'.*');
$mb_icon_file = pathinfo($mb_arr[0], PATHINFO_BASENAME);
// 회원아이콘 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.$mb_dir_name.'/'.$mb_icon_file;
$mb_icon_url = G5_DATA_URL.'/member/'.$mb_dir_name.'/'.$mb_icon_file;
그렇게 올리면..회원정보수정창에서 엑박이 뜨는데요
// 회원아이콘 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
어떤 이미지가 업로드될지 모르는데
이 함수 때문에 원본은 jpg 인데.. 저렇게 이름이 고정이 되어버려서 엑박이 뜨네요..
삭제가 안되네요^^;;;;
!-->
// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
@unlink($mb_dir.'/'.$mb_id.'.gif');
}
이부분에..
G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.jpg';
if(!file_exists($mb_icon_url))$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.png';//jpg 가 없을때 png로 대체
if(!file_exists($mb_icon_url))$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';//png 가 없을때 gif로 대체
를 어떻게 적용을 하나요..
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.