An upload action button decorated with a cloud-and-arrow icon that opens the standard browser file picker dialog, displaying a trash bin icon next to selected files for instant removal.
- Allowing users to pick, upload, and manage binary files (documents, images, audio, video) inside form workflows.
- Binding uploaded file references to backend database records while enforcing access permissions and file extension filters.
Disabled by default until a default_form is present on the page layout. Requires selecting an Element ID and a target Field Path to bind file uploads to form payloads.
Form-bound file path references, binary document attachments, media URLs, or storage object keys.
Data Source section attributes remain locked until a default_form is actively placed in the workspace hierarchy.
- A document upload button bound to a user profile form field (
['avatarImage']) withimage/*browser filter restrictions. - An enterprise contract attachment control configured with ‘document’ type group permissions and a
.pdffile filter.
- Using for simple text or markdown inputs where raw text content is entered directly rather than attached as a file.
- Attempting to map Data Source form bindings before adding a parent default_form container onto the canvas layout.
- Leaving the ‘Accept’ extension filter completely empty when expecting specific file formats like PDFs or images.
Pairs well with
- Form — Provides the underlying form context, validation handling, and file path payload submission engine.
Configure these in the Application Designer property panel. Group headings mirror the editor where possible. Data Source is where the element gets its rows or field binding (a view/query, a connector operation, or a parent form field). References appear only for view-backed sources and map foreign-key ID columns to readable labels from another view.
- Another element on the page whose data backs this field.Default: none
- Path into the source element’s data (property segments).Default: none
- Controls access role permissions governing who can view or download the uploaded file once stored in the system.Default: public
- Categorizes the uploaded file asset type in storage system registries.Default: image
- Browser-side file type filter string for the native upload picker (e.g., ‘image/*’ for images, ‘.pdf’ for PDFs, ‘.doc,.docx’ for Word files).Example
image/*,application/pdfDefault: none
- When true, the control cannot be edited.Example
falseDefault: none
- Minimum size: 3 × 1 grid cells (width × height).
label— Text label rendered on the face of the file upload trigger button alongside the upload icon.
Renders a accessible file input (<input type='file'>) with explicit ARIA label associations. Keyboard focus hits both the file trigger button and the trash removal icon.
- Spacebar or Enter triggers the file chooser dialog.
- Tab navigates between the upload button and the trash bin removal icon when a file is selected.
Other parts of your app can read live values from this element in custom expressions:
elements.myFileInput.<property>
value
string
Current input value of this control.
elements.myFileInput.value
When The stored path of the uploaded file — the value that is saved with the form. Empty until an upload finishes.
errors
any
Field-level validation errors after submit or blur.
elements.myFileInput.errors
touched
boolean
Map of fields the user has interacted with.
elements.myFileInput.touched
loading
boolean
True while data is loading from the server.
elements.myFileInput.loading
When True while an upload is in progress. Disable the form's Save button with it so a record is not saved before its attachment exists.
metadata
object
Additional server metadata for the current result set.
elements.myFileInput.metadata
file
file
The currently selected file, including its name and size.
elements.myFileInput.file
uploadError
string
Error message if the last upload failed.
elements.myFileInput.uploadError
metadataError
string
Error message if the file details could not be loaded.
elements.myFileInput.metadataError
To use one of these, open the property you want to drive on the other element, switch it to expression mode in the Expression Editor, and enter:
| |
Replace myFileInput with this element’s unique id. Select the element in Application Designer and copy the id chip at the top of the right-hand property panel.
Drag this element into one of these containers:
- Form — Can be nested directly inside or placed alongside form layouts. When a form is linked as a data source, it transitions behavior from local state management to form-bound schema state tracking.
| |