Skip to content

FileInput

File upload dropzone supporting single or multiple files. Transforms selected File objects to { rawFile, src, title } structures with preview URLs. Renders optional children as previews (each wrapped in its own record context).

<FileInput source="file" />
<FileInput source="attachments" multiple accept={{ 'image/*': [] }}>
<ImageField source="src" title="title" />
</FileInput>
PropRequiredTypeDefaultDescription
sourceRequiredstring-Field name
multipleOptionalbooleanfalseAllow multiple files
acceptOptionalDropzoneOptions['accept']-MIME / extension accept map
maxSizeOptionalnumber-Max bytes
minSizeOptionalnumber-Min bytes
optionsOptionalDropzoneOptions-Extra dropzone options
labelSingleOptionalstringra.input.file.upload_singlei18n key for single placeholder
labelMultipleOptionalstringra.input.file.upload_severali18n key multiple placeholder
placeholderOptionalReactNode-Custom placeholder content
onRemoveOptional(file:any)=>void-Callback after removing a file
validateFileRemovalOptional(file:any)=>boolean|Promise<boolean>-Throw/cancel to prevent removal
childrenOptionalReactNode-Preview element (single)
helperTextOptionalReactNode-Help text
classNameOptionalstring-Wrapper classes

Children receive each file as record via RecordContextProvider, so you can use field components.

Each preview includes a remove button; you can supply removeIcon to customize.