CI 묻고 답하기

제목 download helper로 다운로드시 한글깨짐
글쓴이 다클템 작성시각 2013/05/07 11:01:07
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 18666   RSS
 다운로드를 할때 한글 파일 명이 uri 로 넘어 가게 했습니다.
"/index.php/download/download_file/가나다라마.jpg/FE1334625480.jpg/" 이렇게 넘어가게 되는데요
익스, 크로 에서는 한글이 안깨지는데요 파이어 폭스,사파리 등에서는 한글이 깨집니다
그래서 urldecode() 함수를 사용한면 사피리 쪽에서는 안깨는데요 익스에서는 깨져 버립니다.
어떻게 방법이 없을까요?

 다음글 파일 업로드시 rename 관련 질문입니다. (5)
 이전글 update관련 질문 입니다. 꾸벅~~ (10)

댓글

변종원(웅파) / 2013/05/07 13:34:36 / 추천 0
urlencode() 해서 넘기는게 좋습니다. 받을때 urldecode() 해주구요.

무슨 이유때문에 한글파일명을 보이게 하려는지는 모르겠는데(별다른 이유가 없을 것 같은데..)
브라우저에 따라 자동으로 urlencode()처리를 하기도 합니다.

한글파일명이 깨져서 다운로드가 작동안하는 것이라면 첫줄에 쓴것처럼 처리하세요.
다클템 / 2013/05/07 13:40:35 / 추천 0
 간혹 자신이 올린 파일과 파일 명이 다르다고 태클 거시는 분이 있습니다.
말씀 하시대로 urlencode() 해서 넘기고 urldecode() 받아도 문제가 생겨서
브라우저 버전을 체크 해서 나누어 버렸습니다.
변종원(웅파) / 2013/05/07 14:49:26 / 추천 0
다클/ 그렇다면 로직이 좀 이상한겁니다.

보통 다운로딩을 하는 컨트롤러에 파일명을 전달하여 처리하지 않고 해당파일의 번호를 넘기고
그 안에서 파일명 가져와서 euc-kr로 변환후 다운로드처리합니다.

사용자가 파일명이 다르다고 태클을 걸 여지 자체가 없는거죠.

한글을 주소에 넘기는 프로세스라 문제가 되는거죠. ^^;