See the WordPress Storybook for more detailed, interactive documentation.
FormFileUpload allows users to select files from their local device.
import { FormFileUpload } from '@wordpress/components';
const MyFormFileUpload = () => (
<FormFileUpload
__next40pxDefaultSize
accept="image/*"
onChange={ ( event ) => console.log( event.currentTarget.files ) }
>
Upload
</FormFileUpload>
);
Props
__next40pxDefaultSize
- Type:
boolean
- Required: No
- Default:
false
Start opting into the larger default height that will become the default size in a future version.
accept
- Type:
string
- Required: No
A string passed to the input
element that tells the browser which
file types
can be uploaded by the user. e.g: image/*,video/*
.
children
- Type:
ReactNode
- Required: No
Children are passed as children of Button
.
icon
- Type:
IconType
- Required: No
The icon to render in the default button.
See the Icon
component docs for more information.
multiple
- Type:
boolean
- Required: No
- Default:
false
Whether to allow multiple selection of files or not.
onChange
- Type:
ChangeEventHandler<HTMLInputElement>
- Required: Yes
Callback function passed directly to the input
file element.
Select files will be available in event.currentTarget.files
.
onClick
- Type:
MouseEventHandler<HTMLInputElement>
- Required: No
Callback function passed directly to the input
file element.
This can be useful when you want to force a change
event to fire when
the user chooses the same file again. To do this, set the target value to
an empty string in the onClick
function.
<FormFileUpload
__next40pxDefaultSize
onClick={ ( event ) => ( event.target.value = '' ) }
onChange={ onChange }
>
Upload
</FormFileUpload>
render
- Type:
(arg: { openFileDialog: () => void; }) => ReactNode
- Required: No
Optional callback function used to render the UI.
If passed, the component does not render the default UI (a button) and
calls this function to render it. The function receives an object with
property openFileDialog
, a function that, when called, opens the browser
native file upload modal window.