Skip to content

FileUploader

FileUploader is a drag-and-drop upload zone with file validation, file list display, and remove support.

Basic usage

0 file(s) selected

Tailwind v4
vue
<script setup>
import { ref } from 'vue'
const files = ref([])
</script>

<FileUploader v-model="files" multiple />

With accept and max size

Tailwind v4
vue
<FileUploader
  v-model="files"
  accept="image/*"
  :max-size="2 * 1024 * 1024"
  label="Upload images (max 2 MB each)"
  multiple
  @error="msg => console.error(msg)"
/>

Disabled

Tailwind v4
vue
<FileUploader :disabled="true" />

Props

PropTypeDefaultDescription
modelValueFile[]Selected files (use with v-model)
acceptstringAccepted MIME types/extensions e.g. 'image/*,.pdf'
multiplebooleanfalseAllow multiple file selection
maxSizenumberMax file size in bytes
disabledbooleanfalseDisables the drop zone
labelstring'Drag and drop files here, or click to browse'Drop zone label text

Events

EventPayloadDescription
update:modelValueFile[]Emitted when files change
errorstringEmitted when a file fails validation (wrong type or too large)

Private — Jetpack Labs internal use only