ImageInput
Image upload input widget for handling image file uploads.
Examples
Basic Usage
This example runs a form with a single page containing the widget
Example Code
from abstra.forms import ImageInput, run
# Create a page with the widget
example_page = [
ImageInput(label="Image Input", key="my-image_input"),
]
# Run the form
result = run([example_page])
# Print the result
print(result)
Parameters
Name | Description | Type | Default |
---|---|---|---|
label (required) | Text label displayed above the input. | str | None |
key | Identifier for the widget, defaults to label if not provided. | str | None |
required | Whether a file must be uploaded before proceeding. | bool | True |
hint | Help text displayed below the input. | str | None |
full_width | Whether the input should take up the full width of its container. | bool | False |
disabled | Whether the input is non-interactive. | bool | False |
max_file_size | Maximum file size in bytes. | int | None |
multiple | Whether multiple files can be uploaded. | bool | False |
min | Minimum number of files required when multiple=True. | int | None |
max | Maximum number of files allowed when multiple=True. | int | None |
accepted_formats | List of accepted file extensions. | List[str] | None |
errors | Pre-defined validation error messages to display. | Union[List[str], str] | None |
State Value
Union[FileResponse, List[FileResponse], None]
: The uploaded image file(s). FileResponse is a dictionary-like object: {'name': str, 'path': pathlib.Path}
. If multiple
is True, will be a list, otherwise a single FileResponse object.
info
This is the type of the value that this widget holds. It will show up when accessing widget's state item.
This also defines which value type can be used on initial_state