회원 여분필드에 첨부파일 받을 시
본문
if (isset($_FILES['mb_5']) && is_uploaded_file($_FILES['mb_5']['tmp_name'])) {
if (preg_match("/(\.gif|jpg|png|jpeg)$/i", $_FILES['mb_5']['name'])) {
// 파일 용량이 설정값보다 이하만 업로드 가능
@mkdir($mb_dir, G5_DIR_PERMISSION);
@chmod($mb_dir, G5_DIR_PERMISSION);
$dest_path = $mb_dir.'/'.$_FILES['mb_5']['name'];
// 수정시 기존파일 삭제
$filename2 = $member['mb_5'];
@unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$filename2));
$sql = " update {$g5['member_table']} set mb_5 ='' where mb_id='$mb_id'" ;
sql_query($sql);
// 파일업로드
move_uploaded_file($_FILES['mb_5']['tmp_name'], iconv("UTF-8","EUC-KR",$dest_path));
chmod(iconv("UTF-8","EUC-KR",$dest_path), G5_FILE_PERMISSION);
$size = @getimagesize($dest_path);
if ($size[0] >= $config['cf_member_img_width']){
$thumb = thumbnail($_FILES['mb_5']['name'], $mb_dir, $mb_dir, $config['cf_member_img_width'], $config['cf_member_img_height'], true, true);
@unlink($dest_path);
rename($mb_dir.'/'.$thumb, $dest_path);
}
// 파일명 여분필드에 업데이트
$filename = $_FILES['mb_5']['name'];
$sql = " update {$g5['member_table']} set mb_5 ='$filename' where mb_id='$mb_id'" ;
sql_query($sql);
} else {
$msg .= $_FILES['mb_5']['name'].'은(는) 이미지파일이 아닙니다.';
}
}
위처럼 받고있는데 저장시 파일명을 $mb_id로 저장하려면 어느부분을 수정해야할까요?
$mb_id를 넣어보니 확장자명때문에 안되더라구요 ㅠㅠ
도움부탁드립니다 ! 감사합니다!
답변 2
@unlink($dest_path);
$mime_type=str_replace("image/","",$size["mime"]);
$filename =$member["mb_id"].".".$mime_type;
$tumb_dest_path=$mb_dir."/".$filename;
rename($mb_dir.'/'.$thumb, $tumb_dest_path);
이런식으로 해주면 될것 같은데요.
하단
// 파일명 여분필드에 업데이트
$filename = $_FILES['mb_5']['name'];
은 삭제하구요
!-->파일명이 한글이 깨진다는것은 인코딩 문제일텐데 그래서 첨부파일은 가급적 한글파일명을 대체해서 사용하는편 입니다.