diff --git a/frontend/src/lib/components/UploadDropzone.svelte b/frontend/src/lib/components/UploadDropzone.svelte index dea01ef..5975391 100644 --- a/frontend/src/lib/components/UploadDropzone.svelte +++ b/frontend/src/lib/components/UploadDropzone.svelte @@ -6,9 +6,9 @@ let { onupload = () => {} } = $props(); - // home-caddy `request_body max_size 100MB` (infra_inventory.md D8 / Cloudflare 섹션 참조). + // home-caddy `request_body max_size 100MB` (go-humanize SI 기준 100,000,000 바이트). // 100MB 초과 파일은 NAS PKM 폴더 직접 마운트 → file_watcher 5분 간격 자동 인덱싱 경로 사용. - const MAX_UPLOAD_BYTES = 100 * 1024 * 1024; + const MAX_UPLOAD_BYTES = 100 * 1000 * 1000; const NAS_FALLBACK_HINT = '대용량 파일은 NAS의 PKM 폴더에 직접 두면 file_watcher 가 5분 이내에 자동 인덱싱합니다.'; let dragging = $state(false); @@ -70,7 +70,7 @@ if (tooLarge.length > 0) { const names = tooLarge - .map(f => `${f.name} (${(f.size / 1024 / 1024).toFixed(1)}MB)`) + .map(f => `${f.name} (${(f.size / 1000 / 1000).toFixed(1)}MB)`) .join(', '); addToast( 'error', @@ -112,11 +112,16 @@ uploadFiles = [...uploadFiles]; } + const skipped = tooLarge.length; + const tail = + (failed > 0 ? `, ${failed}건 실패` : '') + + (skipped > 0 ? `, ${skipped}건 용량 초과 스킵` : ''); + if (success > 0) { - addToast('success', `${success}건 업로드 완료${failed > 0 ? `, ${failed}건 실패` : ''}`); + addToast('success', `${success}건 업로드 완료${tail}`); onupload(); - } else { - addToast('error', `업로드 실패 (${failed}건)`); + } else if (failed > 0) { + addToast('error', `업로드 실패 (${failed}건)${skipped > 0 ? `, ${skipped}건 용량 초과 스킵` : ''}`); } setTimeout(() => {