BOARD

팁·활용

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

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 18회 작성일 26-10-02 16:04

본문

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

그누보드 게시판에 파일을 업로드할 때 서버 저장용 파일명이 임의의 문자열로 암호화·변경되는 기본 동작을 수정하여 원본 파일명 그대로 저장하는 방법을 안내합니다.

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

그누보드 게시판에 첨부 파일을 업로드할 때 서버에 임의의 암호화된 값이나 규칙으로 변경되어 저장되는 파일명을 원본 이름 그대로 유지하도록 수정하려면 /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 관리 시 발생할 수 있는 인코딩 문제를 사전에 검토해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.