CI 묻고 답하기

제목 zip library 압축 후 삭제 관련 질문드립니다.
카테고리 CI 2, 3
글쓴이 돼지바뿅뿅 작성시각 2016/10/12 09:11:05
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 16806   RSS

안녕하세요. 선배님들

날씨가 많이 쌀쌀해졌습니다. 

감기조심하세요 ㅎㅎ

 

제가 지금 다중 다운로드(?)를 만들고있는데요,

리스트에서 checkbox로 선택된 파일들을 한번에 다운받는건데...

zip libarary를 사용해서 압축후에 다운로드 받을 수있도록 해놨습니다.

 

어찌저찌 다운로드까지는 되는데...

 

$this->zip->download('test.zip');

 

다운 이후에 압축한 파일을 지우고 싶어서

 

unlink('경로/test.zip');

했는데.. 지워지지가않네요..

 

경로를 빼고 해봐도안되고,

CI에 있는 file_delete 를 사용해도 안되더군요... 

$this->zip->download() 날린 시점 에서 끝나는건가요?

 

파일 다운로드 후 다운받은 파일 삭제하는 좋은 방법이 있을까요?

 다음글 액티브 레코딩 관련 get_where() (1)
 이전글 CI Upload Library 질문 (2)

댓글

뫄뫄잉뿌 / 2016/10/12 09:38:38 / 추천 0
경로가 정확한지 확인해보셨나요?
돼지바뿅뿅 / 2016/10/12 09:43:33 / 추천 0

@뫄뫄잉뿌

경로는 정확하구요..

현재 코드가

if($this->zip->download('test.zip'))

{

   unlink('경로/test.zip');

}

 

이렇게되어있는데요...다운로드까지는 잘되는데..삭제가 되지않습니다..

변종원(웅파) / 2016/10/12 09:46:34 / 추천 0
디렉토리 권한(퍼미션) 체크해보세요
kaido / 2016/10/12 10:04:30 / 추천 0

리룩스 이면.. 

chmod -R 775  경로
chown -R apache.root 경로

권한과 소유자 둘다 변경. web 에서 실행하는 권한은 apache 입니다.

돼지바뿅뿅 / 2016/10/12 10:16:47 / 추천 0

@변종원(웅파), @kaido

폴더 권한에서는 문제가없습니다...

현재 제 로컬에서 테스트 중인 작업이라.. 윈도우이며, 등록 / 삭제 아무이상없이 됩니다..

다운로드 소스를 보시면

 

//업로드하며 변경된 파일명을 원본 파일명으로 복사

$old_file = '경로/파일명';

$new_file = '경로/원본파일명';

copy($old_file, $new_file);

//복사된 파일을 압축

$this->zip->read_file($new_file);

$this->zip->archive('경로/test.zip');

//복사된 원본 파일 삭제

unlink($new_file);

 

위의 소스가 for문을 돌면서 여러 파일을 test.zip 파일로 압축 시킵니다.

압축 시키며 복사되었던 원본파일명을 가진 파일은 삭제가 됩니다.

이후 압축된 파일을 다운로드 받습니다.

if($this->zip->download('test.zip'))

{

   unlink('경로/test.zip');

}

 

그런데, 이때 위에서 복사된 원본파일명은 정상적으로 삭제되는 반면,

압축된 파일은 다운로드까진 정상적으로 진행되나, 그 이후에 삭제가 되지 않습니다.

 

 

 

돼지바뿅뿅 / 2016/10/12 11:09:11 / 추천 0

여러 테스트 중에 알게되었는데;;

$this->zip->download()

 

이후엔 작동이 멈추는것같습니다..

 

그래서 편법이지만 해당 페이지에 들어올때 압축된 파일을 검색해서 있으면 삭제하도록했습니다;

 

더좋은 방법이 있으면 조언 부탁드립니다.

변종원(웅파) / 2016/10/12 12:00:27 / 추천 0
해당 함수 내용 따라가다보면 제일 마지막에 exit가 있네요. 
exit($data);