2026, 새로운 도약을 시작합니다.

File Uploader - 프레임워크 독립적인 파일 업로드 Web Component

스크린샷 2025-12-31 오후 2.05.31.png

## 소개

File Uploader는 프레임워크에 독립적인 Web Component 기반 파일 업로더입니다.

그누보드5, 영카트5는 물론이고 React, Vue, Angular 등 모든 환경에서 사용할 수 있습니다.

## 주요 기능

- 드래그 앤 드롭: 파일을 드래그하여 쉽게 업로드

- 이미지 미리보기: 업로드 전 이미지 썸네일 표시

- PDF 렌더링: PDF.js로 첫 페이지 썸네일 자동 생성

- 파일 검증: 파일 타입, 크기, 개수 제한 설정

- 드래그 정렬: 파일 순서 변경 지원

- 수정 모드: 기존 파일 로드 및 편집 지원

## 사용 방법

HTML에서 스크립트를 로드하고 태그 하나만 추가하면 됩니다:

[code]

<script type="module" src="/assets/js/file-uploader.js"></script>

<file-uploader></file-uploader>

[/code]

다양한 옵션도 지원합니다:

[code]

<file-uploader

    accept="image/*"

    max-files="5"

    max-size="5242880"

    view-mode="grid"

></file-uploader>

[/code]

## 주요 속성

- accept: 허용 파일 타입 (예: image/*, .pdf)

- max-size: 최대 파일 크기 (bytes, 기본 10MB)

- max-files: 최대 파일 개수 (기본 10개)

- view-mode: 보기 모드 (list 또는 grid)

- compact: 컴팩트 모드 (폼 내부용)

- readonly: 읽기 전용 모드

## 메서드

- getFiles(): 선택된 파일 목록 반환

- clearFiles(): 모든 파일 제거

- loadFiles(fileInfos): 기존 파일 로드 (수정 모드)

- getNewFiles(): 새로 추가된 파일만 반환

- getDeletedFileIds(): 삭제된 기존 파일 ID 목록

## 이벤트

- files-selected: 파일이 선택되었을 때

- file-removed: 파일이 삭제되었을 때

- files-reordered: 파일 순서가 변경되었을 때

- upload-requested: 업로드 버튼 클릭 시

## 그누보드5 연동 팁

폼 제출 시 FormData를 사용하여 파일을 서버로 전송할 수 있습니다:

[code]

const uploader = document.getElementById('uploader');

const formData = new FormData();

const files = uploader.getFiles();

files.forEach((file, i) => formData.append('bf_file[]', file));

[/code]

수정 페이지에서는 loadFiles()로 기존 파일을 불러오고,

getNewFiles()와 getDeletedFileIds()로 변경사항을 추적할 수 있습니다.

관심 있으신 분들은 사용해 보시고 피드백 주시면 감사하겠습니다!

자세한 사용법은 

https://custom-file-upload.oootool.com/example/ 을 방문해주세요.

게시판 적용 샘플

https://custom-file-upload.oootool.com/front/

|

댓글 4개

감사합니다. 새해 복 많이 받으세요 ^^

새해 복 많이 받으세요.

궁금한게 있는데 라이센스는 어떻게 되죠?

@캐드맨 이 코드는 공통 컴포넌트라서 공개된 버전입니다. 그냥 쓰셔도 됩니다.

이 컴포넌트를 활용한 스킨이나 플러그인을 만들고 있는데, 그건 아마 비상업용 으로 업로드 할것 같습니다. (컨텐츠몰에 유료 버전 업로드 예정)

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,593
2741 어제 조회 76
2740 3일 전 조회 83
2739 1주 전 조회 195
2738 1주 전 조회 201
2737 1주 전 조회 169
2736 1주 전 조회 269
2735 2주 전 조회 274
2734 3주 전 조회 255
2733 1개월 전 조회 258
2732 1개월 전 조회 293
2731 1개월 전 조회 261
2730 1개월 전 조회 218
2729 1개월 전 조회 344
2728 1개월 전 조회 238
2727 1개월 전 조회 413
2726 1개월 전 조회 248
2725 1개월 전 조회 323
2724 1개월 전 조회 352
2723 1개월 전 조회 260
2722 1개월 전 조회 293
2721 1개월 전 조회 206
2720 2개월 전 조회 299
2719 2개월 전 조회 302
2718 2개월 전 조회 196
2717 2개월 전 조회 328
2716 2개월 전 조회 198
2715 2개월 전 조회 306
2714 2개월 전 조회 266
2713 2개월 전 조회 369
2712 2개월 전 조회 284
🐛 버그신고