Skip to content

FileInput ​

File upload input with button mode and drag-and-drop zone support.

Button mode ​

The default: a styled button that opens the file picker. The button label updates to show the selected filename.

Tailwind v4
vue
<FileInput v-model="file" label="Choose a file" />

With accept filter ​

Use accept to restrict which file types the browser offers in the picker.

Tailwind v4
vue
<FileInput v-model="image" accept="image/*" label="Upload image" />

Multiple files ​

Tailwind v4
vue
<FileInput v-model="files" :multiple="true" label="Choose files" />

Drag-and-drop zone ​

Set dragDrop to render a dashed drop zone. The border turns blue while a file is dragged over.

Tailwind v4
vue
<FileInput v-model="file" :dragDrop="true" />

Drag-and-drop with accept ​

Tailwind v4
vue
<FileInput v-model="doc" :dragDrop="true" accept=".pdf,.doc,.docx" hint="PDF or Word documents only" />

Error state ​

Tailwind v4
vue
<FileInput v-model="file" label="Upload report" :error="errors.file" />

Disabled ​

Tailwind v4
vue
<FileInput v-model="file" label="Upload document" :disabled="true" />

Props ​

PropTypeDefaultDescription
modelValueFile | File[] | null—Selected file(s) (use with v-model)
multiplebooleanfalseAllow selecting multiple files
acceptstring—Accepted file types (e.g. "image/*", ".pdf,.doc")
disabledbooleanfalseDisables the input
errorstring—Error message — shows danger border + text below
hintstring—Hint text below the input
labelstring—Button label (button mode only)
dragDropbooleanfalseShow drag-and-drop zone instead of a button

Events ​

EventPayloadDescription
update:modelValueFile | File[] | nullEmitted when files are selected or dropped

Private — Jetpack Labs internal use only