--- {"id":"file-uploader","title":"파일 업로드","category":"컴포넌트","order":52,"summary":"파일 선택·전송·첨부 상태 관리의 사용·상태·접근성 계약.","status":"문서 기준 · UI 미검증","references":["components/file-uploader/usage"]} --- # 파일 업로드 ## 목적과 사용 파일 선택·전송·첨부 상태 관리에 사용합니다. 드래그만 허용하거나 전송 완료를 업무 저장 완료로 표시하지 않습니다. ## 구성과 변형 선택/드롭 영역, 허용 조건, 파일별 상태, 제거/재시도. 변형의 외형은 각 제품의 기존 [토큰](tokens.md)을 사용합니다. Carbon의 크기·색·모서리·아이콘을 가져오지 않습니다. ## 동작 규칙 - UPL-01 MUST: 파일 선택 버튼을 드래그의 대안으로 제공합니다. - UPL-02 MUST: 파일별 크기·총 요청 크기·개수·허용 형식을 실제 서버 기준으로 안내합니다. - UPL-03 MUST: 선택·전송·검증·저장 완료를 구분합니다. - UPL-04 MUST: 실패한 파일과 성공한 파일을 구별하고 재시도 범위를 명시합니다. ## 접근성 파일 목록 변경·오류를 알리고 선택·제거·재시도를 키보드로 할 수 있어야 합니다. 공통 [접근성 기준](accessibility.md)도 함께 적용합니다. ## 콘텐츠 예시 좋음: ‘첨부 선택됨 — 티켓을 보내면 업로드됩니다’ / 피함: 선택만 했는데 ‘등록 완료’. ## 우리 구현과 연결 Blesta 티켓은 기존 multipart 폼을 유지합니다. VPS/Panel 업로드 경로를 동일한 API로 바꾸지 않습니다. 제품별 소유 경로는 [WICKEDVPS](product-vps.md), [Panel](product-panel.md), [Blesta](product-blesta.md)와 [소스 근거](source-evidence.md)를 확인합니다. 코드 존재와 모든 사용처의 준수는 다르며, 별도 표시가 없는 제품별 준수 상태는 미검증입니다. ## 상태와 검증 0바이트·한글명·초과 크기·총합 초과·중단·중복 파일·실패 후 선택 변경을 확인합니다. 일반·hover·focus·실행 중·실패·성공·disabled·read-only 중 해당하는 상태를 기록합니다. 해당하지 않는 상태를 임의로 만들지 말고 이유를 남깁니다. [검증 체크리스트](testing.md)에 증거를 연결합니다.