CI 묻고 답하기

제목 업로드 질문입니다. - 질문 수정
글쓴이 서슬기 작성시각 2015/02/27 10:11:58
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 14986   RSS
일단 서버는 윈도우 서버입니다. 
한글명 파일을 업로드 할 때 
$config['encrypt_name'] = true;

으로 해놓고 파일이 잘 들어가는 것도 확인했습니다. 

디비에도 
'FileName' => $data['upload_data']['orig_name'],
'EncryptFileName' => $data['upload_data']['file_name']

이렇게 잘 저장이 됩니다. 

제가 하고 싶은 기능은 이겁니다. 
파일은 암호화가 되어서 올라가고 사용자가 게시판에서 첨부파일명을 볼 때는 orig_name을 보게는 했습니다. 
하지만 정작 다운로드 받을 때는 암호화 된 파일명을 받게 되는데, 저희가 쓸 프로그램에서는 영문보단
한글로된 파일들이 거의 95%이상 차지하고 있고, 사용자들이 원래 파일명을 가지고 작업을 하는 것이 있어서 
암호화된 파일명을 강제로 orig_name으로 바꾼다던지 하는 방법이 있을까요?

추가설명입니다.
1. 업로드 할 때 파일명을 암호화한다. 
2. 정상적으로 올라갔으면 DB에 저장되어 있는 orig_name을 받아와서 강제로(?) 파일명을 변경해준다. 
3. 사용자가 다운로드 받을 때 변환이 된 파일명으로 다운로드 받는다. 



웅파님 답변을 참고해서 사용자가 다운로드 받을 떄 원래 이름으로 다운로드 되게 작업했습니다. 
허나 다운로드 받은 파일이 죄다 손상되었다고 하네요? (이미지, txt 등등)
파일크기도 동일한데 뭔가 문제 일까요 . ㅠㅠ
 다음글 index.php 관련 문제입니다 (8)
 이전글 CI로 개발된 컨트롤러들을 UML로 그려주는 툴이있나요... (1)

댓글

변종원(웅파) / 2015/02/27 10:52:39 / 추천 0
포럼소스입니다.
 
$this->load->helper('download');
  $data = file_get_contents($this->input->server('DOCUMENT_ROOT')."/data/files/".$file['file_name']);
  if (!force_download(urlencode($file['original_name']), $data))
   alert('파일을 찾을 수 없습니다.');


 
서슬기 / 2015/02/27 12:00:09 / 추천 0
답변 감사합니다. 
다운로드는 잘되는데, 죄다 손상된 파일이라고 하네요? (크기도 제대로)
이건 어떻게 하면 될까요? 
변종원(웅파) / 2015/02/27 16:39:24 / 추천 0
포럼에서 작동중인 소스라 소스상의 문제는 아니고 서버특성일 수도 있겠네요. 

file_get_contents 함수가 제대로 작동하는지 php.ini 설정 보시구요

이미지 파일을 가지고 테스트해보세요. <img src="'.
$data.'"> 이미지가 제대로 나온다면
force_download의 문제겠죠.

단계별로 디버깅해보세요.
 
ci세상 / 2015/02/27 17:24:55 / 추천 0
tip게시판에 오늘 올려드린것 참고함 해보세요