CI 묻고 답하기

제목 파일 업로드 문의
글쓴이 ricky 작성시각 2010/01/26 23:46:32
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 30080   RSS
파일명이 한글인 파일이 정상적으로 업로드 되게 하려면 어떻게 하면되죠?

영문 파일은 정상으로 업로드 되는데 파일명이 한글이거나 다른 언어가 되면 파일명이 이상하게 돼서 업로드 되네요.

좋은 답변 부탁드립니다.
 다음글 세션설정에 관해 문의 합니다. (3)
 이전글 서버감시... (3)

댓글

헛발이 / 2010/01/27 09:27:46 / 추천 0
제가 답변을 적어 보면요...
대부분 파일 업로드 할때는 실제 서버에 저장되는 파일명은 영문자,숫자조합된 2바이트 문자를 사용하지 않습니다. 이유는 대부분 서버가 리눅스서버이고 리눅스에서 한글명이 깨져 인식 못하는 경우가 많기 때문이고 윈도서버라면 상관 없겠지만요..

암튼 그래서 실제 서버에 저장되는 파일명은 시스템에 문제 없는 영문, 숫자조합으로 저장시키고 DB에는 실제파일명(한글),과 실제 저장된 파일명(영문,숫자) 을 동시에 저장해 두고..

화면상에 보여줄때는 한글파일명을 보여주고 실제 다운받을땐 영문,숫자파일명을 링크 시켜주는 방식으로 하고 있죠..

그렇게 안하고 계시다면 이번 기회에 그렇게 해 보시기 바랍니다..

(고수님들 맞죠? ㅋㅋ)
ricky / 2010/01/27 09:46:23 / 추천 0

네 고맙습니다. 파일명 수정하는것으로 하죠.

헛발이 / 2010/01/27 10:02:02 / 추천 0
근데 아마 파일명을 쉽게 만들면 보안상 좋지 않다고 생각해요...
그러니 MD5나 그런 암호화한 파일명이면 좋을듯 싶은데..

아마 메뉴얼 http://www.codeigniter-kr.org/user_guide/libraries/file_uploading.html
여기 보시면요..설정들 Preferences에 그런 내용이 있을거에요...
CI는 그걸 자동으로 해 줄거에요..
변종원(웅파) / 2010/01/27 10:03:14 / 추천 0
한가지 방법은 헛발이님 말씀대로 2개의 파일명을 사용하는 것입니다.
포럼소스 보시면 파일테이블에 원본파일명과 실제 저장된 영문파일명 2개를 가지고 있습니다.
보여줄때는 원본파일명을 보여주고 클릭할때는 영문파일명으로 불러옵니다.

또 하나는 apache서버단에서 mod_url을 올리는 겁니다.
그러면 한글파일명 그대로 사용할 수 있습니다.
(검색사이트에서 mod_url로 검색하시면 자료 충분히 나옵니다. ^^)


범용적인 측면에서 보면 첫번째 방식으로 작업을 해두시는 것이 좋습니다.
두번째 방법은 자사의 서버를 직접 컨트롤할 수 있을때만 가능합니다.
헛발이 / 2010/01/27 10:04:55 / 추천 0
아하 그런 방법이 또 있군요 ㅋㅋ
역시 멀고도 험하군요
ricky / 2010/01/27 10:07:06 / 추천 0
웅파님 헛발이님 두분다 너무 좋은답변주셔서 고맙습니다.
사월 / 2010/01/27 14:58:45 / 추천 0
윈도우에 아파치 깔고 하는 경우 제대로 안될 수도 있습니다;; 리눅스에선 잘 되구요. (utf-8 환경..)