CI 묻고 답하기

제목 다운로드시 한글파일명 오류 문의입니다.
글쓴이 과학나라 작성시각 2014/03/11 09:39:57
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 16442   RSS
 컨트롤러

 public function file_download($clipfile){
  
  $this->load->helper('download');
  $data = file_get_contents("./community_file/".$clipfile); // Read the file's contents
  
  force_download(mb_convert_encoding($clipfile, 'euc-kr', 'utf-8'), $data);
  echo "http://파일경로/".$clipfile; 
 } 


view
<? echo"<a href=\"/bbs/cSHARE/file_download/$clipfile\"><font color='blue'>$clipfile</font></a>" ?>

참고로 변수 clipfile는 파일 이름이 담겨져 있습니다.

문제는 숫자,영어로된 파일이름명은 컨트롤러에서 file_download 거쳐서 다운 로드가 됩니다.

문제는 한글 파일명을 다운로드 할시


http://파일경로/erher##gq1.jpg  <-- 여기서 붙여넣기 하면 재대로 나와서 제가 임의로 지정했습니다.

이렇게 나오면서 파일명을 찾을수 없어서 오류가 나온거 같습니다,

컨트롤러에서 view페이지로 갈때 변수는 clipfile를 UTF-8로 처리를 해서 페이지상 한글이 안깨져서 나오는데요

변수 clipfile를 file_download 함수로 보낼때 UTF-8로 처리해보았지만 잘 안되네요

무슨 방법이 있으면 조언 부탁드립니다. 
 다음글 session과 try rollback (1)
 이전글 pdf파일 생성 후 다운로드 (1)

댓글

과학나라 / 2014/03/11 13:01:27 / 추천 0
 이것은 정말로 방법이 없나요ㅜㅜ
수야디벨 / 2014/03/11 15:08:25 / 추천 0
원래는 파일명이 한글도 될 텐데요 .. 얼마전에도 한글 다운로드 구현했었거든요. 코드이그나티어 파일업로드 기능으로

실제로 제가 소스를 테스트 해볼 시간은 없으니 

순수하게 한글 이름이 깨진다면 그냥 이런 방식은 어떨까요?

파일 업로드하기전에 파일네임을암호화해서 업로드하고 ,

파일 다운로드할때는 파일명을 디코딩 해서 받게 하는거죠.


변종원(웅파) / 2014/03/11 16:08:12 / 추천 0
서버가 리눅스면 아파치에 mod_url.c가 적용되어 있어야 한글다운로드가 될겁니다.