파일명에 wr_num 포함시키기 질문

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
파일명에 wr_num 포함시키기 질문

QA

파일명에 wr_num 포함시키기 질문

답변 3

본문

이미지 게시판에 이미지를 올리면 첫번째 게시물 번호가 
No. <span><?= ($list_item['wr_num'] * -1) ?></span>
로 출력됩니다.

해당 글의 이미지 파일명을
$upload[$i]['file'] = $bo_table . '_' . abs($wr_num) . '_' . $mb_id

(파일명 : 게시판이름_게시물번호_작성자아이디)
위에처럼 바꿨는데 가끔씩 abs($wr_num) 부분이 0번째 게시물이 아님에도 0으로 출력되면서 다른 게시글과 꼬이는 현상이 발생됩니다. (게시물번호는 정상적으로 출력되고 파일명만 0으로 되는데, 해당 게시물을 삭제하고 다시 올리면 정상 출력됩니다. 랜덤하게 파일명이 "게시판이름_0_작성자아이디" 로 저장돼요.)
혹시 파일명에 게시물 번호가 유지되면서 문제 해결할 수 있는 방법이 있을까요?
 

이 질문에 댓글 쓰기 :

답변 3

※ wr_num 대신 wr_id를 사용하는 방식으로, wr_id가 없는 경우를 대비한

  예외 처리 코드를 추가하는 방법으로 처리하여 보세요.

 

/bbs/write_update.php

 - wr_id를 사용하여 이미지 파일 이름을 수정하는 코드

기존 코드


$upload[$i]['file'] = $bo_table . '_' . abs($wr_num) . '_' . $mb_id;

수정 코드


$wr_id = isset($write['wr_id']) ? $write['wr_id'] : null;
if ($wr_id) {
    $upload[$i]['file'] = $bo_table . '_' . $wr_id . '_' . $mb_id;
} else {
    $upload[$i]['file'] = $bo_table . '_unknown_' . $mb_id;
}

문제점을 찾았습니다.
업로드 이후 이미지를 수정하게 되면 파일명인 abs($wr_num) 값이 0으로 초기화 됩니다.
혹시 이미지 수정해도 파일명인 abs($wr_num) 값이 유지 되게 할 수 있는 방법이 있을까요?

이미지 업로드 후 수정할 때 abs($wr_num) 값이 0으로 초기화되는 문제는
이미지 수정 과정에서 wr_num 값이 새로 갱신되거나 초기화되기 때문입니다.
이를 해결하려면 이미지 수정 시 기존 파일명을 유지하도록 처리해야 합니다.

업로드된 파일의 정보(파일명 포함)를 g5_board_file 테이블에 저장하고,
수정 시 이 값을 기반으로 처리합니다.


$existing_file_name = $upload[$i]['file']; 
$file_parts = explode('_', $existing_file_name); 
$existing_wr_num = isset($file_parts[1]) ? abs((int)$file_parts[1]) : $wr_num; // wr_num 유지

$new_file_name = $bo_table . '_' . $existing_wr_num . '_' . $mb_id;

move_uploaded_file($_FILES['file']['tmp_name'], $upload_path . '/' . $new_file_name);


이렇게 하면 될까요?

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로