본문 바로가기
profile_image

Gnuboard6

게시판 파일 업로드 로직 분석

페이지 정보

작성자 이노힐
댓글 0건 조회 15회
작성일 2025-04-07 06:04:29

본문

게시판의 파일 업로드 로직을 분석하기 위해 관련 코드 조회 하면,

Searched codebase for "file upload board post"

검색 결과를 바탕으로 게시판의 파일 업로드 로직을 분석해드리겠습니다.
  1. 파일 업로드 API 엔드포인트
  • /api/v1/board/{bo_table}/writes/{wr_id}/files  경로로 파일 업로드 API가 제공됩니다.
  • multipart/form-data 형식으로 파일을 전송해야 합니다.
  1. 파일 업로드 처리 로직 (BoardService.upload_files 메서드)
  • 권한 체크:
  • 관리자가 아닌 경우 자신의 글에만 파일을 업로드할 수 있습니다.
  • 파일 업로드 권한이 있는지 확인합니다.
  • 파일 저장 경로 설정:
  • FILE_DIRECTORY/{bo_table} 경로에 파일이 저장됩니다.
  • 파일 삭제 처리:
  • file_dels 파라미터로 전달된 파일 번호에 해당하는 파일을 삭제합니다.
  • 파일 업로드 제한:
  • 파일 크기 제한: board.bo_upload_size 설정값을 초과할 수 없습니다.
  • 파일 확장자 제한: 이미지, 플래시, 동영상 파일의 확장자를 체크합니다.
  • 파일 정보 저장:
  • 기존 파일이 있는 경우 업데이트
  • 새로운 파일인 경우 새로 추가
  1. 파일 정보 모델 (BoardFile)
  • 주요 필드:
  • bo_table: 게시판 테이블명
  • wr_id: 게시글 ID
  • bf_no: 파일 번호
  • bf_source: 원본 파일명
  • bf_file: 저장된 파일 경로
  • bf_filesize: 파일 크기
  • bf_content: 파일 설명
  • bf_download: 다운로드 횟수
  1. 파일 업로드 폼
  • 파일 업로드 개수 제한:
  • board.bo_upload_count 설정값에 따라 업로드 가능한 파일 수가 제한됩니다.
  • 파일 크기 제한:
  • board.bo_upload_size 설정값을 초과할 수 없습니다.
  • 파일 설명 입력:
  • is_file_content 설정이 true인 경우 파일 설명을 입력할 수 있습니다.
  • 파일 삭제:
  • 기존 파일이 있는 경우 삭제 체크박스가 표시됩니다.
  1. 클라이언트 사이드 검증
  • JavaScript를 통해 파일 크기를 미리 체크합니다.
  • 파일 크기가 제한을 초과하는 경우 업로드를 차단합니다.
이러한 구조로 게시판의 파일 업로드 기능이 구현되어 있습니다. 파일 업로드 시 보안과 사용자 편의성을 고려한 다양한 검증과 제한이 적용되어 있습니다.

파일 업로드 위치 는?

파일 업로드 위치를 확인하기 위해 관련 코드를 더 자세히 살펴보겠습니다.

Searched codebase for "FILE_DIRECTORY file upload path"

파일 업로드 위치에 대한 정보를 찾기 위해 설정 파일을 확인해보겠습니다.

Searched codebase for "FILE_DIRECTORY config setting"

파일 업로드 위치에 대한 정보를 찾아보았습니다. 코드를 분석한 결과, 파일 업로드 위치는 다음과 같습니다:
  1. 게시판 파일 업로드 위치:
  • 기본 경로: data/board/{bo_table}/
  • bo_table은 게시판의 테이블명으로, 각 게시판별로 별도의 디렉토리가 생성됩니다.
  1. Q&A 파일 업로드 위치:
  • 기본 경로: data/qa/
  1. 회원 이미지/아이콘 업로드 위치:
  • 회원 이미지: data/member/image/{회원ID 첫 2자리}/{회원ID}.{확장자}
  • 회원 아이콘: data/member/icon/{회원ID 첫 2자리}/{회원ID}.{확장자}
  1. 에디터 이미지 업로드 위치:
  • 기본 경로: data/editor/
모든 파일은 data 디렉토리 하위에 저장되며, 이 디렉토리는 설치 시 자동으로 생성됩니다. 파일 업로드 시 다음과 같은 특징이 있습니다:
  1. 파일명은 보안을 위해 랜덤하게 생성됩니다.
  1. 각 게시판별로 별도의 디렉토리가 생성되어 파일이 관리됩니다.
  1. 회원 이미지/아이콘은 회원ID의 첫 2자리를 기준으로 하위 디렉토리가 생성됩니다.
이러한 구조로 파일이 업로드되며, 각 기능별로 분리된 디렉토리에서 관리됩니다.

파일 업로드 위치 변경은 어디서 ?

파일 업로드 위치 변경을 위한 설정을 찾아보겠습니다.

Searched codebase for "FILE_DIRECTORY config setting change"

파일 업로드 위치 변경을 위한 설정을 찾아보았습니다. 파일 업로드 위치는 다음과 같이 변경할 수 있습니다:
  1. 기본 데이터 디렉토리 설정:
  • .env 파일에서 DATA_DIRECTORY 설정을 통해 기본 데이터 디렉토리를 변경할 수 있습니다.
  • 기본값은 data 디렉토리입니다.
  1. 각 기능별 파일 업로드 위치:
  • 게시판 파일: data/board/{bo_table}/
  • Q&A 파일: data/qa/
  • 회원 이미지/아이콘: data/member/image/ 또는 data/member/icon/
  • 에디터 이미지: data/editor/
  1. 파일 업로드 관련 설정:
  • .env 파일에서 다음과 같은 설정을 변경할 수 있습니다:

    env

    Apply to board.py

      # 에디터 업로드 설정

      UPLOAD_IMAGE_RESIZE=false  # 에디터 이미지 리사이즈 사용 여부

      UPLOAD_IMAGE_SIZE_LIMIT=20  # 이미지 업로드 제한 용량 (MB)

      UPLOAD_IMAGE_RESIZE_WIDTH=1200  # 이미지 리사이즈 너비 (px)

      UPLOAD_IMAGE_RESIZE_HEIGHT=2800  # 이미지 리사이즈 높이 (px)

      UPLOAD_IMAGE_QUALITY=80  # 이미지 품질 (0~100)

     

  1. 게시판별 업로드 설정:
  • 각 게시판별로 다음과 같은 설정을 변경할 수 있습니다:
  • bo_upload_size: 파일 업로드 용량 제한
  • bo_upload_count: 파일 업로드 개수 제한
  • bo_upload_width: 이미지 업로드 너비 제한
  • bo_upload_height: 이미지 업로드 높이 제한
  1. 회원 이미지/아이콘 설정:
  • 관리자 설정에서 다음과 같은 설정을 변경할 수 있습니다:
  • cf_member_icon_size: 회원 아이콘 크기 제한
  • cf_member_icon_width: 회원 아이콘 너비 제한
  • cf_member_icon_height: 회원 아이콘 높이 제한
  • cf_member_img_size: 회원 이미지 크기 제한
  • cf_member_img_width: 회원 이미지 너비 제한
  • cf_member_img_height: 회원 이미지 높이 제한
파일 업로드 위치를 변경하려면 .env 파일에서 DATA_DIRECTORY 설정을 변경하고, 변경된 디렉토리에 대한 적절한 권한을 설정해야 합니다. 또한 변경된 디렉토리가 웹 서버에서 접근 가능하도록 설정해야 합니다.

.env 파일에서 DATA_DIRECTORY 설정이 없는데?

죄송합니다. .env 파일의 설정을 직접 확인해보겠습니다.

Read .env

L1-100

네, 죄송합니다. 제가 잘못 설명드렸습니다. .env 파일에는 DATA_DIRECTORY 설정이 없습니다.
파일 업로드 위치는 코드에서 하드코딩되어 있습니다:
  1. 게시판 파일: data/board/{bo_table}/
  1. Q&A 파일: data/qa/
  1. 회원 이미지/아이콘: data/member/image/ 또는 data/member/icon/
  1. 에디터 이미지: data/editor/
이러한 경로들은 코드에서 직접 정의되어 있으며, 현재는 .env 파일을 통해 변경할 수 있는 방법이 없습니다.
만약 파일 업로드 위치를 변경하고 싶으시다면, 다음과 같은 방법을 고려해볼 수 있습니다:
  1. 소스 코드를 수정하여 파일 업로드 경로를 변경
  1. 심볼릭 링크를 사용하여 원하는 위치로 연결
  1. 웹 서버 설정에서 /data 경로를 원하는 위치로 리다이렉트
현재는 이러한 방법들 중 하나를 선택하여 수동으로 변경해야 합니다. 향후 버전에서는 .env 파일을 통해 파일 업로드 위치를 설정할 수 있도록 개선될 수 있을 것 같습니다.

댓글목록

등록된 댓글이 없습니다.

댓글쓰기

내용

방문자 집계

  • 오늘 614
  • 어제 630
  • 최대 849
  • 전체 31,411

Copyright © innohealonline.com. All rights reserved.