Extra Form
PHP PHP 7.3
CMS Rhymix

1.png.jpg

 

포인트 마켓에 일정 시간이 지나면 게시글 자동 삭제( https://xetown.com/point_contents/1110684 )

 

애드온을 통해 게시글을 삭제했더니 위와 같이 파일 똥이 남고야 말아버렸습니다...

 

글, 댓글은 서버에서 사라졌는데, 파일이 "유효" 상태로 남아 따로 걸러내기가 힘든데

 

mysql 에서 한번에 삭제하는 명령어가 있을까요?

  • profile
    애드온이 글 삭제 함수를 사용했을텐데 첨부가 남을리가요. 뭔가 다른 사연이 있나요?
  • profile ?

    저도 그게 너무 의문입니다.

    $oDocumentController->deleteDocument($val[1], true);
    위와 같은 소스로 삭제하던데, 게시글이 수천개 쌓인 곳에 삭제되다보니 누락된게 아닌가 싶기도 하고 약간 멘붕입니다.

  • ? profile
    아... 글이 한꺼번에 대량 삭제가 되는 하루에 글이 엄청 많이 작성되는 곳 인가보네요..
  • profile
    mysql 은 db라 상관 없을 거구요. 파일은 db에 저장되지 않습다. 웹 저장 공간에 업로드 되는거죠. 구체적 해결책은 못드리지만 다른 내용이 있어 언급했습니다.
  • profile

    DB에서 해당 파일과 관련된 정보를 삭제하더라도 실제 files/attach 폴더 내에 저장된 파일은 그대로 남습니다. 제대로 삭제하려면 PHP단에서 루프 돌리면서 deleteFile() 메소드를 정확하게 호출해 줘야 합니다.

  • profile ?

    네. 모두 삭제해주어야 하는 것은 알고 있습니다.
    혹시 파일명을 제목 기준으로 정렬하는 방법은 없을까요?
    $args->sort_index = 'file_srl'; // /< 이 부분은 file_srl 을 기준으로 정렬하는데
    만약 파일명으로 문서를 정렬한다면 제목 없는 파일만 삭제해줄 수 있을 것 같습니다.

  • ?

    혹시나 노가다하실 분들을 위해서 공유합니다

    /modules/file/tpl/file_list.html 파일 내에 <tr> 태그에 cond="!$val->upload_target_type" 조건 걸어주면 서버에 없는 파일만 나오니, 체크 박스로 삭제하세요...

  • ? ?
    해결후 팁까지 남겨주시니.. 감사합니다~!
  • ? profile
    조심하세요. 정상적인 파일도 upload_target_type이 없는 경우가 종종 있습니다.