그누보드 파일 업로드 시 원본 파일명 유지 및 변경 방지 방법
페이지 정보

본문
그누보드 게시판에 파일을 업로드할 때 서버 저장용 파일명이 임의의 문자열로 암호화·변경되는 기본 동작을 수정하여 원본 파일명 그대로 저장하는 방법을 안내합니다.
그누보드 파일 업로드 시 원본 파일명 유지 및 변경 방지 방법
그누보드 게시판에 첨부 파일을 업로드할 때 서버에 임의의 암호화된 값이나 규칙으로 변경되어 저장되는 파일명을 원본 이름 그대로 유지하도록 수정하려면 /bbs/write_update.php 파일을 수정해야 합니다. 수정 전 반드시 해당 파일을 백업하십시오.
1. 수정 파일 위치
/bbs/write_update.php
2. 코드 수정 방법
파일 내에서 기존 파일명 변환 로직 코드를 찾아서 주석 처리한 뒤 원본 파일명으로 저장되도록 코드를 변경합니다.
- 기존 코드 예시
$upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename); - 변경 코드 (전체 게시판 적용)위 코드를 주석 처리하고 아래와 같이 적용합니다.
$upload[$i]['file'] = urlencode($filename); // 파일명 변경 없이 원본 그대로 - 특정 게시판에만 적용하는 조건문 예시공지사항 등 특정 게시판(
notice)에만 원본 파일명 유지를 적용하고 나머지는 기존 규칙을 유지하려면 아래와 같이 조건문을 사용합니다.if ($bo_table == 'notice') { $upload[$i]['file'] = urlencode($filename); // 파일명 변경 없이 원본 그대로 } else { $upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename); }
3. 주의사항 및 예외
- 파일명 중복 문제: 파일명 변경 규칙을 비활성화하면 파일 중복 체크가 작동하지 않습니다. 동일한 이름의 파일(예:
file_01.zip)을 나중에 다른 글에서 업로드할 경우, 처음에 올렸던 파일은 사라지고 나중에 올린 파일만 남게 되므로 중복에 유의해야 합니다. - 한글 파일명: 한글로 된 파일명은 그대로 업로드할 경우 FTP로 직접 받을 때 인코딩 문제로 파일명이 깨질 수 있으므로 한글 파일명 업로드 환경에서는 신중하게 적용해야 합니다.
그누보드 파일 업로드 시 원본 파일명 유지 설정 방법
그누보드 게시판에 파일을 업로드할 때 서버 저장용 파일명이 임의의 규칙으로 변경되는 것을 방지하고 원본 파일명 그대로 저장하려면 /bbs/write_update.php 파일을 수정해야 합니다.
1. 코드 수정 위치 및 방법
/bbs/write_update.php 파일에서 기존 파일명 변환 로직 코드를 찾아서 주석 처리한 후 원본 파일명을 유지하는 코드로 변경합니다.
- 수정 전 기존 코드 예시:
$upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename);
- 수정 후 변경 코드:
$upload[$i]['file'] = urlencode($filename);
2. 특정 게시판에만 적용하는 조건문 추가
모든 게시판이 아닌 특정 게시판(예: notice 게시판)에만 파일명 원본 유지 기능을 적용하려면 if 조건문을 사용하여 설정할 수 있습니다.
if ($bo_table == 'notice') {
$upload[$i]['file'] = urlencode($filename); // 특정 게시판만 파일명 변경 없이 원본 그대로 저장
} else {
$upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename);
}
3. 주의사항 및 다음 행동
- 중복 파일 덮어쓰기 주의: 파일명 변경 규칙을 비활성화하면 파일 중복 체크가 작동하지 않습니다. 동일한 이름의 파일이 업로드될 경우 기존 파일이 사라지고 나중에 업로드한 파일만 남게 되므로 중복에 유의해야 합니다.
- 한글 파일명 제한: 한글 이름으로 된 파일은 원본 그대로 업로드할 경우 FTP로 다운로드하거나 관리할 때 문제가 발생할 수 있으므로 한글 파일명 업로드 환경에서는 적용 시 주의해야 합니다.
파일명 원본 유지 시 중복 파일 덮어쓰기 주의사항
그누보드 파일 업로드 시 파일명 원본 유지(예: $upload[$i][file] = urlencode($filename);)를 적용하면 파일 중복 체크가 이루어지지 않습니다.
주의해야 할 문제
- 기존 파일 삭제 및 유실: 예를 들어
file_01.zip을 업로드한 후, 나중에 다른 글을 작성할 때 동일한 이름인file_01.zip을 올리면 처음에 올렸던 파일은 사라지고 나중에 올린 파일만 남게 됩니다. - 데이터 유실 방지: 따라서 파일명이 중복되지 않도록 관리하거나, 동일한 파일 이름이 업로드될 때 기존 파일이 덮어써지지 않도록 주의해야 합니다.
한글 파일명 업로드 시 주의사항
한글로 된 파일명은 그대로 업로드할 경우 서버 환경에 따라 정상적으로 업로드되지 않거나, FTP로 직접 파일을 받을 때 인코딩 문제로 파일명이 깨질 수 있습니다. 한글 파일명 사용이 필수적인 환경이라면 FTP 관리 시 발생할 수 있는 인코딩 문제를 사전에 검토해야 합니다.
기본적인 파일명 유지 수정 방법은 앞선 안내를 참고하십시오.
상황별 파일명 유지 적용 가이드
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 모든 게시판의 첨부파일명을 원본 그대로 저장 | /bbs/write_update.php의 파일명 변환 로직 비활성화 | 기존 코드를 주석 처리하고 $upload[$i][file] = urlencode($filename); 추가 |
| 특정 게시판(예: 공지사항)에만 원본 파일명 유지 적용 | $bo_table 변수를 활용한 조건문 분기 | if ($bo_table == 'notice') 조건문 내부에 원본 저장 코드를 배치하고 else에 기존 로직 유지 코드 작성 |
실전 FAQ
Q. 동일한 이름의 파일을 업로드하면 어떻게 되나요?
- 막히는 점: 파일명 변경 규칙을 비활성화하면 그누보드의 기본 파일 중복 체크가 작동하지 않습니다.
- 대안: 동일한 파일명 업로드 시 기존 파일이 덮어씌워져 유실될 수 있으므로, 업로드 전 파일명을 고유하게 관리하거나 덮어쓰기 위험을 인지해야 합니다.
Q. 한글 파일명 업로드 시 주의사항은 무엇인가요?
- 예외: 한글 파일명은 서버 환경에 따라 정상적으로 업로드되지 않거나, 추후 FTP를 통해 파일을 다운로드할 때 인코딩 문제로 파일명이 깨질 수 있습니다.
- 대안: 한글 파일명 사용이 필수적인 환경이라면 FTP 관리 시 발생할 수 있는 인코딩 문제를 사전에 검토해야 합니다.
함께 보면 좋은 글
- PHP 파일 업로드 보안 처리 가이드: isuploadedfile 및 moveuploadedfile 사용
- PHP 파일 업로드 처리 및 $FILES 배열 활용 가이드
- PHP 폼 데이터 전송 및 파일 업로드 처리 기초
참고자료
기타 참고자료
- 이전글G4 현재 접속자 목록에 관리자 포함시키기 26.10.02
- 다음글그누보드 최신글 리스트 화면 파일 다운로드 구현 방법 26.10.02
댓글목록
등록된 댓글이 없습니다.