솔그루

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/

 

 

|

댓글 6개

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

새해 복 많이 받으세요.

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

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

 

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

기존에 쓰고 있던게 불편했는데 사용해보겠습니다. 고맙습니다.
써보시고 후기나 피드백 주시면 개선하는데 큰 도움이 됩니다. 감사합니다. 
실제 사용 예제 코드는
https://sir.kr/boards/g5_plugin/14723 을 참고하세요. 
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

+
제목 글쓴이 날짜 조회
3년 전 조회 4,754
2일 전 조회 69
4일 전 조회 88
1주 전 조회 186
1주 전 조회 225
2주 전 조회 284
2주 전 조회 297
2주 전 조회 266
3주 전 조회 423
3주 전 조회 275
3주 전 조회 369
4주 전 조회 321
1개월 전 조회 433
1개월 전 조회 445
1개월 전 조회 338
1개월 전 조회 522
1개월 전 조회 497
1개월 전 조회 458
1개월 전 조회 444
1개월 전 조회 510
1개월 전 조회 435
1개월 전 조회 425
2개월 전 조회 586
2개월 전 조회 436
2개월 전 조회 632
2개월 전 조회 500
2개월 전 조회 563
2개월 전 조회 557
2개월 전 조회 469
2개월 전 조회 511
2개월 전 조회 397