CI 묻고 답하기

제목 세션 만료시 다른 동작도 같이 가능한지 궁금합니다.
글쓴이 ns 작성시각 2011/02/21 11:30:15
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 26802   RSS
안녕하세요.
CI 입문한지 얼마되지 않은 견습생(^^) 입니다.
지금 뭐 하나 만들어 보겠다고 뚱땅거리고 있는데 CI를 쓰면 쓸수록 참 매력적이더군요.
실력이 모자라다보니 어설프지만 삽질하다보면 왠만한 것들은 결국 생각한대로 구현이 되니 참 신기합니다.
막코딩이라 제대로 하고 있는지 조차도 모르겠지만요. ㅎㅎ


각설하고,
현재 만들고 있는 사이트 안에 Create라는 페이지에서 내용을 작성하고
필요한 경우 이미지도 포함하는 기능을 넣고 있는데요.
업로드한 이미지는 일단 /temp 디렉토리에 임시로 올렸다가
관련된 폼 내용 작성이 완료되면 그 이미지는 특정 디렉토리로 옮겨지고
/temp에서는 지워지게 해놨습니다.

만약 이미지가 업로드된 상태에서 Create 페이지를 빠져나온 경우,
나중에 그 이미지를 사용할 수 있게끔 자동 삭제하지는 않았습니다.
예를 들어 이미지만 업로드 해놓고 다른 페이지 갔다가 다시 Create 페이지를 들어간다던지,
브라우저를 닫고 다시 접속, 혹은 다음날에도 해당 아이디로 접속만 하면
기존에 업로드한 이미지를 그대로 사용하는 것이지요.

하지만 그 이미지가 영구히 남아 있게되면 문제가 될 것 같아 접속한 세션 내에서만 이미지를 임시로 저장하고
시간이 경과하여 세션이 자동으로 삭제될 경우에 임시로 업로드한 이미지도 /temp에서 자동으로 지워지도록 하고픈데
아직 개념이 부족해서인지 어느 부분을 건드려야 할지 감이 잘 오지 않습니다.
참고로 세션은 DB에 저장하는 방식으로 사용하고 있습니다.


질문이 이상하지 않을런지 모르겠네요. 힌트 주시면 감사하겠습니다.
 다음글 cart 라이브러리 사용방법 (1)
 이전글 #(sharp)가 들어간 uri (4)

댓글

변종원(웅파) / 2011/02/21 12:03:51 / 추천 0
db에 있는 세션과 일치하지 않는 이미지 파일을 삭제하는 php 파일을 하나 만들고

cron에 1시간단위(시간은 편하신대로 설정)로 자동으로 위의 php 파일을 실행하도록 하시면 됩니다.

윈도우일경우는 배치잡으로 등록을 하시면 되구요.

cron 내용

시간     php -q /home/temp_image_delete.php

위와 같이 등록하시면 됩니다.
ns / 2011/02/21 13:18:40 / 추천 0
답변 감사합니다. 특정 시간단위로 체크하면 되겠군요.
근데 제가 사용하는 호스팅은 싼맛에 쓰는 공용서버다 보니 cron을 지원하지 않는다고 하네요.
조금 비용이 들더라도 가상서버호스팅 사용을 고려해 봐야겠습니다.

그리고 질문하나 더 드리자면 이미지를 지우는 controller가

http://domain.com/controller/temp_image_delete 

라고 한다면 위의 것도 cron을 적용할 수 있을까요?

변종원(웅파) / 2011/02/21 15:06:23 / 추천 0
시간 wget http://domain.com/controller/temp_image_delete  > null

이렇게 하시면 될겁니다.

가능하시면 php파일로 따로 작성해서 돌리시는게 나을 겁니다.
ns / 2011/02/21 15:13:12 / 추천 0
음.. 주소로 해놓으면 잘못 실행 될 경우도 있겠네요.

감사합니다. 도움 많이 되었습니다~