테스트 사이트 - 개발 중인 베타 버전입니다

게시글 수정 시 첨부파일 삭제 안 되게 하는 방법 채택완료

티틴 3년 전 조회 3,305

게시글 수정 -> 기존 첨부파일 된 부분 체크(삭제) -> 확인을 누르면

 

data에 있는 첨부파일이 삭제되는데요.

 

혹시 수정하더라도 첨부파일 삭제가 안 되게 하는 방법이 없을까요. 

 

물론, 게시판 상단에 첨부파일은 안 떠야 하구요. 

 

 

 

bbs/write.update.php 의 585 라인부근

 

</p>

<p> </p>

<p>    // 삭제에 체크가 되어있다면 파일을 삭제합니다.

        if (isset($_POST['bf_file_del'][$i]) && $_POST['bf_file_del'][$i]) {

            $upload[$i]['del_check'] = true;</p>

<p>            $row = sql_fetch(" select bf_file from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' ");

            @unlink(G5_DATA_PATH.'/file/'.$bo_table.'/'.$row['bf_file']);

            // 썸네일삭제

            if(preg_match("/\.({$config['cf_image_extension']})$/i", $row['bf_file'])) {

                delete_board_thumbnail($bo_table, $row['bf_file']);

            }

        }

        else

            $upload[$i]['del_check'] = false;</p>

<p>        $tmp_file  = $_FILES['bf_file']['tmp_name'][$i];

        $filesize  = $_FILES['bf_file']['size'][$i];

        $filename  = $_FILES['bf_file']['name'][$i];

        $filename  = get_safe_filename($filename);</p>

<p>

 

이 부분을 주석처리 해보니, 첨부파일 삭제는 안 되는데, 

 

게시판 상단에 첨부파일 목록은 그대로 있어서 질문드려봅니다..

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
// 삭제에 체크가 되어있다면 파일을 삭제합니다.
        if (isset($_POST['bf_file_del'][$i]) && $_POST['bf_file_del'][$i]) {
            $upload[$i]['del_check'] = false;

 

 

여기 바꿔보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

티틴
3년 전
해보았는데... 똑같습니다 ㅠ 파일삭제 체크하고 확인눌러도 상단에 첨부파일이 그대로 존재하네요 ㅠ
리오닥터
3년 전
그럼 애초에 체크박스를 없애면 되지 않나요?
티틴
3년 전
유저에게는 첨부파일이 삭제된 것으로 보이게 만들고 싶습니다 ㅠ
리오닥터
3년 전
if (isset($_POST['bf_file_del'][$i]) && $_POST['bf_file_del'][$i]) {
$upload[$i]['del_check'] = true;
$row = sql_fetch(" select bf_file from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' ");
@unlink(G5_DATA_PATH.'/file/'.$bo_table.'/'.$row['bf_file']);
// 썸네일삭제
if(preg_match("/\.({$config['cf_image_extension']})$/i", $row['bf_file'])) {
delete_board_thumbnail($bo_table, $row['bf_file']);
}
}
else
$upload[$i]['del_check'] = false;

이부분을 아예 주석처리 해버리세요~
티틴
3년 전
/*
if (isset($_POST['bf_file_del'][$i]) && $_POST['bf_file_del'][$i]) {
$upload[$i]['del_check'] = true;

$row = sql_fetch(" select bf_file from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' ");
@unlink(G5_DATA_PATH.'/file/'.$bo_table.'/'.$row['bf_file']);
// 썸네일삭제
if(preg_match("/\.({$config['cf_image_extension']})$/i", $row['bf_file'])) {
delete_board_thumbnail($bo_table, $row['bf_file']);
}
}
else
$upload[$i]['del_check'] = false;
*/

말씀대로 주석처리 해보았으나 수정, 첨부파일 삭제 눌러도 첨부파일이 그대로 살아있네요 ㅠ
리오닥터
3년 전
그러면 if($is_admin) { 조건문 이용해서 업로드는 아예 어드민만 가능하게.. 해놓으면?
if($w == "u") { } << 이게 수정할때 부분이고 여기 내부에 if($is_admin) { } 조건문 넣어서 업로드 로직을 전부다 넣으세요

댓글을 작성하려면 로그인이 필요합니다.

m
3년 전

첨부파일에서 뭔가 하는것보단

회원이 파일 삭제 체크 했을 경우 여분필드에 기록해 두었다가 

view.php 에서 관리자이며 여분필드에 기록이 있을 경우 노출 되게 하는게 

나을것 같습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인