여분필드 첨부파일 한글깨짐
본문
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'];
$newName = $mb_id.'.jpg';
$newPath = $mb_dir.'/'.$newName;
// 수정시 기존파일 삭제
@unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$newName));
$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, $newPath);
}else{
rename($dest_path, $newPath);
}
// 파일명 여분필드에 업데이트
$sql = " update {$g5['member_table']} set mb_5 ='$newName' where mb_id='$mb_id'" ;
sql_query($sql);
} else {
$msg .= $_FILES['mb_5']['name'].'은(는) 이미지파일이 아닙니다.';
}
}
상단코드처럼 여분필드 mb_5에 첨부파일을 받아 파일을 업로드하면 영어파일명은 잘 올라가는데
한글파일명은 깨져서 적용되더라구요ㅠㅠ 파일자체가 손상되서 열리지도 않고 ㅠㅠ
어떻게 해결하면 될까요? 도움 부탁드립니다! 감사합니다!!
답변 1
위 소스를 보면 iconv("UTF-8","EUC-KR", 이런 변환코드가 많이 보여지는데.. 이것이 왜 필요한지 모르겠 네요..
iconv 가 사용된 부분들의 iconv 함수를 모두 삭제하시고 해보세요.