파일명에 wr_num 포함시키기 질문
본문
이미지 게시판에 이미지를 올리면 첫번째 게시물 번호가
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_작성자아이디" 로 저장돼요.)
혹시 파일명에 게시물 번호가 유지되면서 문제 해결할 수 있는 방법이 있을까요?
답변 4
아래의 내용을 한번 참고를 해보세요.
$unique_id = uniqid();
$upload[$i]['file'] = $bo_table . '_' . $wr_id . '_' . $unique_id . '_' . $mb_id;
※ 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) 값이 유지 되게 할 수 있는 방법이 있을까요?
그누보드 버젼이 무엇인지 모르겠으나 wr_num값을 미리 구해서 입력하는 방식이
문제가 있어 어느 시점 부터 변경 되었습니다
다음 처럼 주석처리 되어있고 다음과 같이 되어있을 겁니다
//$wr_num = get_next_num($write_table);
$wr_num = 0;
쿼리 코드 내에서 wr_num값을 생성합니다
즉 wr_num을 등록 화일 이름에 사용할 수 없습니다
다음처럼 wr_id로 설정하세요
$upload[$i]['file'] = $bo_table . '_' . $wr_id. '_' . $mb_id
그런데 첨부 화일을 하나만 사용하는가요? 이상하게 사용하는군요
======
예전 버젼이라 $wr_num = get_next_num($write_table); 을 사용하고 있고
처음 저장시에는 잘 되고 있다면 수정시에는 다음 처럼 하면 됩니다
수정시에는 wr_num을 별도 생성하지않으니 등록 된 값을 사용하도록 해야 합니다
if($w == 'u') $wr_num = $write['wr_num']; //이미 저장된 wr_num 사용