CI 묻고 답하기

제목 force_download 이용시 파일명에 괄호가 깨지는 현상입니다.
카테고리 CI 2, 3
글쓴이 정말못살아 작성시각 2017/09/13 16:19:43
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14884   RSS

먼저 읽어주셔서 감사합니다~~ (_ _)

다운로드시 파일명에 괄호가 깨지는 현상입니다. 

다운로드 링크를  걸어서 

다운로드시 지정될 파일명을 보냅니다. 

그런데 파일명에  괄호()  가 들어있습니다. 

http://도메인/app/download/다운로드파일명(중).ppt

 

download 함수는  아래와 같습니다. 

public function download($name)

{

$this->load->helper('download');

$data = file_get_contents($this->다운로드파일서버경로); 

force_download( $name, $data);

}

 

실행하면   Error  가 뜹니다. 

The URI you submitted has disallowed characters.

 

그래서   config.php  에서  

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-()';

으로   괄호를 추가했습니다. 

 

그랬더니   다운로드는 됩니다.  

 

그런데  ###  다운로드파일명& # 4 0 ; 중 & # 4 1 ; .ppt   ###  이라고 나오네요... 

(중간빈칸은 임의로 넣었습니다. 여기서는 변환해서 괄호로 잘 나오네요.) 

어떤 부분을 수정해야할까요. 

아니면  로직을 수정해야할까요?  

링크파일명을 보내는게 잘못된것일까요?  

 

고수님들의 조언 부탁드립니다. 

 

 

 

 

 다음글 ci에서 instance와 static의 의미는... ... (3)
 이전글 페이스북sdk설치에 대한 질문입니다 (2)

댓글

변종원(웅파) / 2017/09/13 16:53:54 / 추천 0

링크 주소가 변환된 상태인지 확인해보세요. 

force_download에서 파일명 변환하거나 하는 부분이 없습니다.

정말못살아 / 2017/09/13 17:47:56 / 추천 0

 

답변감사드립니다~~   계속 새로고침으로 확인중이였는데 ㅠㅠ 역시 웅파님이시네요. 

 

링크주소는  http://도메인/app/download/다운로드파일명(중).ppt   이대로 찍힙니다. 

저만의 특이한 현상인건가요?

 서버는  Nginx 이며  CI 버전은 2.1.2    php 는 5.3  을 쓰고 있습니다.. 

변종원(웅파) / 2017/09/14 10:13:24 / 추천 0

정말못살아/ 링크주소가 화면엔 정상적으로 찍혀도 소스단에서는 변환된 형태일 수 있습니다.

서버에 저장된 파일명도 확인해보시구요.