개발 Q&A

제목 이미지 업로드 파일을 어떻게 처리 할까요..?
글쓴이 경량 작성시각 2013/04/22 15:52:08
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14912   RSS
 제가 ajax를 이용해 이미지 업로드를 만들고 있는데 아래와 같은 로직으로 만들고 있습니다.

1. 파일 첨부를 클릭해서 이미지 선택

2. ajax로 바로 이미지가 전송되어 서버에 저장 후 썸네일 생성

3. 페이지 리로드 없이 저장된 썸네일 출력

4. 사용자가 글쓰기 완료를 누르면 지정한 위치에 이미지 삽입

이렇게 하고 있는데

중요한건 이미지를 올리고나서 사용자가 글쓰기를 안 누르고 페이지 이탈을 할 경우에

필요 없는 이미지 파일만 업로드가 된다는 것이지요..

이럴 경우 어떻게 처리해서 이미지를 관리해줘야 할 까요??

제가 생각한 로직은

1. 이미지 파일을 ajax로 올리는 순간 db에 해당 이미지 정보와 업로드 시간을 저장

2. 글쓰기시 체크된 이미지 파일을 db에 찾아서 해당 이미지를 이용해 글쓰기를 완료 했다고 db에 체크를 해놓고

3. 주기적으로 db를 검사하여 사용되지 않은 이미지중 시간이 오래 된 것을 삭제 시켜주면 된다.

이렇게 하면 꽤 깔끔하게 이미지 정리가 된다고 생각하는데, 굳이 db를 들락 날락 하는거 아닌지 모르겠습니다.

보통 어떻게 처리를 하는지 궁금합니다..

답변 부탁드려요~
 다음글 html img url 처리 (3)
 이전글 Mysql 쿼리 관련 질문입니다. (3)

댓글

변종원(웅파) / 2013/04/22 16:46:18 / 추천 0
db에 원본파일명을 저장하고 
cron으로 하루에 한번 프로그램을 돌려서 gabage처리를 하시면 됩니다.

프로그램>>
db에서 하루치 이미지명을 가져와서 디렉토리에서 비교하여 db에 없는 파일은 삭제
배강민 / 2013/04/22 18:02:05 / 추천 0
TapBBS의 경우 국내 호스팅에서 최적화를 목표로 하고 있기 때문에

관리자에서 해당 처리하는 페이지를 만들었습니다.



물론, 가끔 관리자가 해당 페이지를 들어가야하지만,

만약 cron 등의 권한이 있다면 주기적으로 해당 프로세스를 실행해도 될듯하고요
배강민 / 2013/04/22 18:04:44 / 추천 0
방식은 DB에 저장까지는 하지않고,

DB의 파일명과 업로드 파일을 diff하여 처리합니다.

파일업로드시 실제 파일은 올라가지만, DB에는 submit 시에만 등록되는 구조거든요.

TapBBS 에서 appliaction/controllers/admin/bbs.php > arrangefiles 함수로 구현되었습니당

현재는 file이 아주 많을때는 부하 문제가 발생할 수 있는 구조입니다.

지금 준비중인 업그레이드 버젼에서는 마지막 arrange 한 타이밍을 저장해서 부하를 줄일 수 있도록 처리 예정입니다.