Skip to content

File Upload

Modern drop zone with drag-and-drop, file validation, and file list. Uses upload and file icons from the icon registry.

Demo

Basic

PDF, JPG eller PNG. Maks 5MB.

Træk filer hertil eller klik for at vælge

Maks 5.0 MB · .pdf,.jpg,.jpeg,.png

Multiple

Upload op til 10 filer

Træk filer hertil eller klik for at vælge

Maks 10.0 MB

Error

Træk filer hertil eller klik for at vælge

Disabled

Træk filer hertil eller klik for at vælge

Installation

vue
<script setup>
import { GTFileUpload } from '@grundtone/vue';
</script>

In Nuxt, GTFileUpload is auto-imported.

Usage

Basic

vue
<GTFileUpload
  label="Vedhæft fil"
  help-text="PDF, JPG eller PNG. Maks 5MB."
  accept=".pdf,.jpg,.jpeg,.png"
  :max-size="5 * 1024 * 1024"
/>

Multiple files

vue
<GTFileUpload label="Dokumenter" multiple :max-size="10 * 1024 * 1024" />

Handle files

vue
<GTFileUpload
  label="Bilag"
  @change="files => console.log(files)"
  @error="msg => toast.error(msg)"
/>

Props

PropTypeDefaultDescription
labelstringVisible label
helpTextstringHelp text (formats, size)
errorTextstringError message
acceptstringAccepted MIME types
maxSizenumberMax file size in bytes
multiplebooleanfalseAllow multiple files
disabledbooleanfalseDisabled state
requiredbooleanfalseRequired field
idstringautoHTML id

Events

EventPayloadDescription
changeFile[]Files added or removed
errorstringValidation error message

Features

  • Drag-and-drop with visual dragover state
  • Click to select via hidden file input
  • File validation — type and size checked before adding
  • File list — shows name, size, remove button
  • Icons — upload icon in drop zone, file icon per file

See File Upload (Design System) for full CSS reference.