묻고답하기
엣지 브라우저 다운로드시 한글파일명 깨짐문제
2016.03.03 08:49
엣지 브라우저에서 xe의 첨부파일중 한글파일명은 다운로드할때 파일명이 깨지더라구요.
이전버전은 물론 신버전. Xe 공홈에서조차 깨집니다.
저만 그런건지...
Xe의 문제인지....
해결방법은 있는건지 궁금합니다.
댓글 3
-
hangrim00
2016.03.06 07:11
-
네가지
2017.04.17 11:40
한그림님, 감사합니다.
엣지의 경우만 이렇게 하고 싶은데 가능하나요?
아래 링크 붙여넣기 했더니, 글내용 화면 전체가 깨져서 나오네요(첨부파일). 도움 부탁드립니다.
https://www.xetown.com/lakepark/318122 -
hio****
2017.07.02 09:39
"./modules/file/file.controller.php" line: 319
// header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Disposition: attachment; filename="'. iconv('UTF-8','CP949',$filename) .'"; filename*=utf-8\'\''. urlencode($filename) .';');
이렇게 하는 것이 가장 적절한 해답이네요.
filename 항목이 2개가 있는데, 첫번째 것은 CP949 인코딩을 그냥 알아보는 놈들을 위한 것이고....
두번째것은 매킨토시에서 메일 클라이언트들이 쓰는 것 같은데... =앞에 별표가 있고, 인코딩 뒤에, single quote 2개, 그 뒤에 urlencode()된 파일명이 공백없이 주루룩 붙는 형태입니다.
앞에것은 filename, 두번째 것은 filename* 가 키가 되겠네요. 그래서 서로 공존할 수 있는 것입니다.
제가 본 5개의 브라우저에서는 이리 했을 때 정상동작하는 것 같습니다.
자체해결했습니다.
파일모듈의 file.controller.php에서 335번째줄
아래 부분의 . $filename. 부분을
.iconv('UTF-8','CP949',$filename).
으로 바꾼다.
// header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Disposition: attachment; filename="'.iconv('UTF-8','CP949',$filename).'"');
위처럼 기존소스를 주석처리 하시고 아래처럼 하시면 됩니다.