개발 Q&A

제목 게시판에서 에디터 사용시 업로드된 이미지 관리관련 질문입니다.
카테고리 PHP
글쓴이 carion 작성시각 2017/10/10 22:56:29
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 13232   RSS

안녕하세요

게시판을 만들때 첨부파일의 경우는 [작성,등록]등의 버튼을 누를 때 업로드 시키고 그 경로 및 이름을 저장해서

수정이나 삭제시 같이 처리를 하면되는 걸로 알고있습니다.

그런데 에디터에 이미지를 로딩하기 위해서는 먼저 업로드 후 그 링크를 에디터에 끌고 오는 식으로 하는 걸로 알고있습니다.

이 경우 글을 작성하다 말고 취소하면 글은 사라지고 업로드된 파일만 남더군요

보통 이렇게 남는 파일을 어떻게 처리하시나요?

 

그리고 위에 적은 방식이 일반적인 방식이 맞나요?

아니면 다른 보편적으로 사용하는 방법이 있나요?

(예를 들어 이 게시판처럼 base64 형식으로 - 이경우는 db에 base64 형식으로 저장하나요?)

 

제가 이쪽에 정식으로 공부를 하거나 한게 아니라 질문이 좀 두서없습니다.

참고할만한 링크 있으면 알려주셔도 감사합니다.

이해부탁드립니다.

 다음글 jquery form validator (7)
 이전글 오라클 long raw 타입의 파일 다운로드하기 (5)

댓글

배강민 / 2017/10/11 08:46:03 / 추천 0

TapBBS는 위지윅에서 첨부한 이미지의 정보도 모두 임시 DB 테이블에 저장하게 하고, 실제 submit시 해당 임시 DB 테이블의 정보를 지우게 하고, 관리자 기능으로 특정 시간 보다 오래된 임시 DB 테이블이 파일과 DB를 지우는 기능을 만들어 두었습니다.

원래는 임시 테이블 없이 파일 자체를 확인하여 삭제하도록 했었는데, 파일이 많이 쌓이게되면 파일들을 확인하다가 메모리 오버로 죽어버려서 그리했습니다.

cronjob등으로 배치를 돌릴 수 있다면 파일로만 해도 되겠지만 웹호스팅등을 이용할때도 문제없게 하려고 수정했었습니다.

해당 가비지 파일에 대한 방식은 상당히 여러가지가 있겠지만 저는 그리했었고, 참고는 http://www.tapbbs.com 의 코드나 관리자체험을 확인해보세요.

변종원(웅파) / 2017/10/11 09:44:23 / 추천 0

1. 글 입력시 이미지파일도 db에 입력하고 cron으로 db에 없는데 디렉토리에 존재하는 파일을 삭제합니다.

2. 업로드시 임시디렉토리에 업로드, db입력시 사용디렉토리에 이동. 임시디렉토리에 남아있는 파일은 가비지이므로 삭제

뭐 결론은 배강민님 말씀과 동일합니다. 1번은 서버호스팅이어야 하고 2번은 웹호스팅도 가능하다는 차이가 있고 자동, 수동의 차이가 있습니다.

carion / 2017/10/11 22:12:32 / 추천 0

//배강민

TapBBS를 오픈해주셔서 감사합니다.(하지만 분석할 실력이..^^;)

여타 cms 부럽지 않더군요 속도같은면에선 매우 좋더군요

일단 간단하게라도 만들어 써보자는 취지와 취미삼아 만들어 보고있습니다

답변해주신 답변대로 공부하고 방향을 잡아봐야겠네요. 답변 감사드립니다.

실력이 미천해서 100% 이해가 되는건 아니지만 db도 좀더 깊게 배워야하고

이지윅도 좀 더 알아야겠네요("자바스크립트=클라이언트"로 알았는데 josn ajax등 배울게 많더군요)

말씀대로 tapbbs도 참고해야되겠네요

carion / 2017/10/11 22:18:07 / 추천 0

//변종원

먼저 답변감사드립니다.

1. 윈도우 서버라서요 ^^;;

2. ck에디터가 어렵네요...

임시 디렉토리에 업로드 후 db입력시 사용디렉토리 이동 : ck에디터가 json을 사용하는거 같던데.. 업로드하고 에디터 창에 이미지가 나오기까지는 하는데... 해당 정보를 php하고 어떻게 연동되는지 몰라서 이동 및 db에 내용 저장을 못하고 있네요..

또한 이동하면 에디터 창(본문)의 링크도 바꿔줘야 이미지가 본문에 뜰거 같은데...

이지윅, js등 좀 더 깊이 있게 공부해야될거 같아요^^;

변종원(웅파) / 2017/10/12 08:56:02 / 추천 0

carion/ 윈도우용 cron도 있습니다. ckeditor 로직을 직접 건드리는 건 쉽지 않으니 cron으로 더미파일 지우시는게 빠르겠네요.

윈도우 배치파일로 실행할 수 있습니다.

하늘치 / 2017/10/12 11:37:14 / 추천 0

저는.. 이런 식으로 만들었습니다.

파일 업로드용 테이블에 업로드가 될 때마다 회원의 세션정보와 시간을 같이 기록합니다.

그리고, 최종 글 작성버튼을 누르면 파일 업로드용 테이블에 등록된 세션값을 삭제합니다.

그리고 세션정보가 남아있는 파일 중 24시간 또는 48시간 이전에 기록된 것들은 지우도록 합니다.