개발 Q&A

제목 IE11, Edge 브라우저에서 파일명이 한글로 된 경우 깨짐 문제 좀 도와주세요.
카테고리 PHP
글쓴이 므깃도 작성시각 2017/01/16 17:07:43
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 25168   RSS

현재 제 회사 데스크탑에서만 파일명이 한글로 된 경우 깨짐 문제가 발생하네요.

OS : Windows10

브라우저는 종류별로 다 테스트 해보았는데요.

IE11, Edge 만 깨짐현상이 있고

Chrome, FF 등은 파일명을 UTF-8 로 하면 정상적으로 다운로드가 됩니다.

 

혹시나 하고 코드이그나이터 포럼 게시판은 괜찮은가 하고 테스트 해보았는데요.

역시나 이곳도 한글명으로된 파일을 업로드하고나서 다운로드 해보니.. 

파일명이 한글인 경우는 깨지네요.--;

 

근데 또 네이버, 다음, 공기관 웹사이트? 등 어느정도 규모가 되는 곳에 있는 한글명 파일들은 정상적으로 다운로드가 됩니다.

 

현재 DB에는 euc-kr 로 한글파일명이 들어가있습니다.

그래서 IE는 DB에 있는대로 보여주고 나머지만 UTF-8로 변환합니다.

$file_name = $rst['FILE_NAME'][0]; // IE          

$file_name = iconv("EUC-KR","UTF-8",$rst['FILE_NAME'][0]); // Chrome,FF

 

아래는 Edge 일때 헤더설정부분입니다. 

header('Expires: 0');    

header('Cache-control: private, no-transform, no-store, must-revalidate');

header('Pragma: no-cache');

header('Content-Transfer-Encoding: binary');    

header('Content-Type: application/octet-stream');    

header('Content-Length: ' . (filesize($file_path));    

header("Content-Disposition: attachment; filename=$file_name");

 

파일명 변환과 헤더설정에 어떤 변화를 줘야 하는지 고수님들의 답변 부탁드립니다.

구글링해서 나온것들 대부분 해봤는데도 해결점이 보이지 않아서 여쭙습니다.

 다음글 unlink오류가 나는데 해결방법을 모르겠습니다. (2)
 이전글 form input에서 백슬래쉬 받아오기 (10)

댓글

한대승(불의회상) / 2017/01/17 08:49:41 / 추천 0
ie나 엣지일때는 EUC-KR을 사용하세요.
므깃도 / 2017/01/17 11:07:06 / 추천 0

ㅠㅠ 기존에 EUC-KR 로 되어 있는데 깨진문자로 파일명이 적히네요..

이곳 포럼 게시판에서도 마찬가지로 다운받는 파일명이 깨진문자로 나오고 있어요..--;

제 PC의 브라우저 문제라고 치부하기에는 또 애매한게..--;

위에도 말씀드렸지만 규모있는 웹사이트들의 한글명 파일들은 또 정상적으로 한글파일명으로 나오니.. 환장하겠네요.

kaido / 2017/01/17 11:31:30 / 추천 0

규모있는 사이트는 다운로드 기능을 별도로 구현 하는 곳도 있습니다.

혹은 윈도우 서버를 사용 할 경우에는 한글 파일명을 100% 지원 하기도 합니다.

 

일반적으로 한글 파일명 다운로드는 애초에 한글명으로 업로드를 시키지 않고, link 주소는 암호화된 url 주소로 보내고

다운로드 할때에는 원본 한글명을 db에 저장해 둔걸 가져다가 지정해서 다운 받게 합니다.

므깃도 / 2017/01/17 13:54:47 / 추천 0

서버환경에 따라서 파일명이 제대로 나올 수 있다는 말씀이군요.

근데 그말씀은 서버에 저장된 파일명을 그대로 사용할때 얘기 아닌가요?

 

저도 실제 웹서버에 저장되는 파일명 자체는 난수형태로 저장해 두거나 파일데이터를 DB에 BLOB 타입으로 넣어두었다가..

사용자가 업로드한 파일명은 DB에 별도로 두고 다운로드 할때만 파일명을 불러다가 사용하고 있습니다.

근데 언젠가 부터 데스크탑PC에서만 파일명이 한글일경우는 깨지더라구요. --;

물론 파일자체는 잘 다운로드 되는데 파일명만 요상하게 나옵니다.

kaido / 2017/01/17 14:17:59 / 추천 0

저도 이 문제로 한번 고생했던 기억이 나는데, 생각보다 별것 아닌 걸로 해결 했던 기억이 나긴 합니다.

그때 기억이 특별한 무언가를 해야 되었던게 아니라, 기본적인 부분에서 해결했던터라 기억에 남진 않네요.

조금 더 찾아 보시면 해결되실거라 생각됩니다.

양승현 / 2017/01/19 08:43:27 / 추천 0
아파치 서버의 경우 한글url 지원하도록 모듈을 설치하였는지 확인해 보셔요. ^^
므깃도 / 2017/01/31 14:25:13 / 추천 0

어부지리로 해결은 했습니다. 물론 PHP로 해결을 얻은 건 아니구요.

제가 Windows 10을 사용하고 있는데 한글입력에 문제가 있었던 것 같습니다.

오늘 갑자기 한영전환이 안되길래 트레이에 한영전환 알림이 없어진 걸 알았습니다. 

그래서 C:\WINDOWS\system32\ctfmon.exe 을 클릭했더니 다시 살아나더군요. 

레지스트리에도 등록을 다시 했습니다. 그랬더니 한글명 파일도 정상적으로 표기되어 다운로드가 되고 있습니다.

물론 제 PC가 이상이 있는데도 불구하고 정상적으로 한글이 보이는 정부 웹사이트나 네이버 등등의 기술이 궁금하기는 합니다.

암튼 한영전환키 문제때문에 어부지리로 다운로드도 해결? 되었습니다..^^