DDS/Components/FileUpload

FileUpload

Form

A drag-and-drop file upload zone with file type validation, size limits, and a file list.

Props

PropTypeDefaultDescription
modelValueFile[][]Selected files (v-model).
acceptstringAccepted file types (MIME or extensions).
multiplebooleanfalseAllow multiple files.
maxSizenumberMax file size in bytes.
maxFilesnumberMax number of files.
disabledbooleanfalseDisables the drop zone.

Examples

Default

Click to upload or drag and drop

.pdf,.png,.jpg

Max 5.0 MB

vue
<script setup>
const files = ref([])
</script>
<template>
  <DsFileUpload
    v-model="files"
    accept=".pdf,.png,.jpg"
    :multiple="true"
    :max-size="5 * 1024 * 1024"
  />
</template>

Skeleton

Use DsFileUploadSkeleton as a loading placeholder while content is being fetched.

Default
vue
<DsFileUploadSkeleton />

Accessibility

  • Drag zone has role="button" with tabindex.
  • Keyboard: Enter or Space opens file picker.
  • Error messages are displayed inline.