[WEB] php 에서 excel 다운로드 시 한글 파일명 깨짐.

웹사이트에서 엑셀 다운로드 받는데 엑셀 파일명이 깨진다고 문의가 들어왔다.
전에는 잘 되었는데 오늘 갑작이 안된다고 해서 확인을 했는데

확인을 해 보니 원래 안 되었음. ㅡ.,ㅡ
크롬에서는 한글 파일명으로 엑셀이 다운로드 되는데 IE에서는 한글이 깨지면서 파일명 전체를 이상하게 만들어서 엑셀 확장자까지 인식이 안되게 되어서 파일을 못 연다.
(뭐 파일명을 이름 바꾸기로 하면 볼수는 있지만.....)

암튼 소스를 보니

ExcelHeader("한글명.xls");   

function ExcelHeader($sFileName) {
header("Content-type: application/vnd.ms-excel");
header("Content-type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment;filename=\"" . $sFileName . "\"");
}

으로 되어있었다.

어김없이 구글쌤에게 물어봐서
(여러가지 방법이 있어서 몇개 해 보았는데 안 되고 이것은 성공)

function ExcelHeader($sFileName) {
  $excelnm = iconv('UTF-8','EUC-KR',$sFileName);   -- 추가 
  header("Content-type: application/vnd.ms-excel");
  header("Content-type: application/vnd.ms-excel; charset=utf-8");
  header("Content-Disposition: attachment;filename=\"" . $excelnm . "\"");  --변수 변경
}

으로 수정을 했더니 ie 11에서 잘 되었다. 크롬도 잘 되고 .


댓글

이 블로그의 인기 게시물

[문서] excel 체크박스 삭제

[DB] MySQL 백업 / 복원

[DB] MS SQL에서 웹으로 데이터 보내기(Sending HTTP Requests)