안녕하세요. 선배님들
날씨가 많이 쌀쌀해졌습니다.
감기조심하세요 ㅎㅎ
제가 지금 다중 다운로드(?)를 만들고있는데요,
리스트에서 checkbox로 선택된 파일들을 한번에 다운받는건데...
zip libarary를 사용해서 압축후에 다운로드 받을 수있도록 해놨습니다.
어찌저찌 다운로드까지는 되는데...
$this->zip->download('test.zip');
다운 이후에 압축한 파일을 지우고 싶어서
unlink('경로/test.zip');
했는데.. 지워지지가않네요..
경로를 빼고 해봐도안되고,
CI에 있는 file_delete 를 사용해도 안되더군요...
$this->zip->download() 날린 시점 에서 끝나는건가요?
파일 다운로드 후 다운받은 파일 삭제하는 좋은 방법이 있을까요?
@뫄뫄잉뿌
네
경로는 정확하구요..
현재 코드가
if($this->zip->download('test.zip'))
{
unlink('경로/test.zip');
}
이렇게되어있는데요...다운로드까지는 잘되는데..삭제가 되지않습니다..
리룩스 이면..
chmod -R 775 경로
chown -R apache.root 경로
권한과 소유자 둘다 변경. web 에서 실행하는 권한은 apache 입니다.
@변종원(웅파), @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');
}
그런데, 이때 위에서 복사된 원본파일명은 정상적으로 삭제되는 반면,
압축된 파일은 다운로드까진 정상적으로 진행되나, 그 이후에 삭제가 되지 않습니다.
여러 테스트 중에 알게되었는데;;
$this->zip->download()
이후엔 작동이 멈추는것같습니다..
그래서 편법이지만 해당 페이지에 들어올때 압축된 파일을 검색해서 있으면 삭제하도록했습니다;
더좋은 방법이 있으면 조언 부탁드립니다.
exit($data);