CI 묻고 답하기

제목 [초보]다운로드 할때 파일명
글쓴이 헛발이 작성시각 2010/02/23 14:47:10
댓글 : 10 추천 : 0 스크랩 : 0 조회수 : 34014   RSS
현재 UTF-8로 만들고 잇꼬...
업로드 할때 원래 파일명을 UTF-8로 저장합니다..

그리고 다운로드 할때 UTF로 합니다.
그런데 이상하게 다운로드 할때 파일명이 깨지네요...

더 우낀건 IE에서는 깨지고 파폭에선 안 깨지고...

그래서 urlencode를 해 봅니다..

그러면 반대로 IE에서 안 깨지고 파폭에선 깨지네요...

더더 우낀건 크롬은 urlencode를 안해도 안 깨지고 해도 안 깨지네요..

뭘 잘못한걸까요 ...
 다음글 엑티브레코드로 조인할떄 alias 기능 되나요? (2)
 이전글 파일 업로드 질문 (2)

댓글

kirrie / 2010/02/23 15:56:28 / 추천 0
ie가 바보입니다.
euc-kr로 파일명을 통일하세요. ff는 utf-8이나 euc-kr(cp949) 모두 잘 받는데, ie만 그러더군요.
헛발이 / 2010/02/23 16:16:46 / 추천 0
음...그러면 마지막 단계 다운 받기 바로 전에
mb_convert_encoding($file_name, 'utf-8', 'euc-kr')로 변경 하면 된다는건가요?
아니면 DB에 값을 넣을때 euc-kr로 하면 된다는건가요?

kirrie / 2010/02/23 16:19:35 / 추천 0
파일을 어떤 식으로 다운로드 하나요? force_download를 통해서 다운로드 하도록 작성하셨다면, 파일명을 넘기는 부분에서 euc-kr(cp949)로 넘기면 된다는 말씀입니다. ^^
헛발이 / 2010/02/23 16:21:02 / 추천 0

마지막 단계에서
 

force_download(mb_convert_encoding($file_name, 'utf-8', 'euc-kr'), $filedata);


이렇게 해 봤는데 깨지는데요....

제가 조금 테스트 해 보니깐요...IE만 그런거 같지 않은데요..
파폭하고 크롬은 utf-8로 잘 되는데..

IE랑 사파리(원도용)는 깨지는군요...

음...워쩐데요... ㅡ.ㅡ;;

kirrie / 2010/02/23 17:59:20 / 추천 0
http://kr.php.net/manual/kr/function.mb-convert-encoding.php

mb_convert_encoding 인자 순서가 바뀐듯.
kirrie / 2010/02/23 18:00:16 / 추천 0
force_download(mb_convert_encoding($file_name, 'euc-kr', 'utf-8'), $filedata);
헛발이 / 2010/02/23 18:14:29 / 추천 0
아 순서가 ㅋㅋㅋ 해보니 되네요 .. 감사합니다... 이렇게 고마울때가 없네요...
저는 업무상 euc-kr은 아니고
이렇게 하니 되네요..
force_download(mb_convert_encoding($file_name, 'shift-jis', 'utf-8'), $filedata);

혹시 shift-jis쓰시는 분 참조 하세요~ ^^;;
최용운 / 2010/02/24 11:25:57 / 추천 0
아 ... 좋은팁입니다... php 코딩안한지가 오래되어서 다 까먹었어요 ..답변을 달고 싶어도 못다는 신세 .ㅠㅠ
홍구2 / 2013/02/14 18:32:25 / 추천 0
 감사합니다.
2전산2 / 2013/07/26 04:11:29 / 추천 0
 감사합니다. ㅎㅎㅎ 도움 많이 됬어요~!