Skip to main content
Version: 1.0.8

Upload

Pick or drop a file. The file is exposed on the component’s value and through the fileReceived event, so a script can store it anywhere.

The Upload component as it renders with its default settings.The Upload component as it renders with its default settings.

Reach for it when you need:

  • Attaching a photo to a downtime record
  • Importing a CSV for a pipeline to process

Component name: Upload · Category: Input

In the palette: Pick / drop a file — store it anywhere via its value or the fileReceived event

Properties​

Any property can be bound to a tag, another component's property, or a query.

PropertyTypeDefaultDescription
valueunion""The file reference: a server URL (server mode) or an inline data URL (data mode). Bind this to a write Named Query param to store it. Array when 'multiple'.
storageModeenumserverserver = upload to the sandboxed uploads folder and keep a URL; data = keep the file inline as a base64 data URL (small files only). Options: server · data.
folderstring""server mode: destination folder under the uploads root (e.g. invoices/2026). Supports {{bindings}}. Confined to the sandbox — it can't escape the uploads root.
multiplebooleanfalseAllow selecting several files (value becomes an array of references).
acceptstring""Allowed file-type filter, e.g. image/*,.pdf. Blank = any.
maxSizeMBnumber25Reject files larger than this many MB (0 = no widget limit). This can only TIGHTEN the platform limit set in Settings → Storage — the server enforces the global cap regardless.
dropzonebooleantrueShow a large drag-and-drop area instead of a single button.
buttonLabelstringChoose file—
showPreviewbooleantrueShow image thumbnails for image files.
titlestringUpload—
showTitlebooleantrue—
titleSizenumber0Title font size (px). 0 = follows the size. 1.0.8
sizeenuminheritField height, padding, text and title size. Project default = the project's Control size (Project settings → Theme). Use md or larger on touch panels. Options: inherit · xs · sm · md · lg · xl. 1.0.8
shadowbooleantrueShow a subtle drop-shadow on the control. Turn off for a flat look.
disabledbooleanfalse—
stylestyle{}Custom CSS properties

Events​

Attach event actions to these in the Event Manager.

EventLabelGroupPayload
clickClickMouseThe DOM event.
dblclickDouble clickMouseThe DOM event.
contextmenuRight clickMouseThe DOM event.
mouseenterMouse enterMouseThe DOM event.
mouseleaveMouse leaveMouseThe DOM event.
changeChangeInputThe DOM event.
submitSubmitInputThe DOM event.
focusFocusInputThe DOM event.
blurBlurInputThe DOM event.
fileReceivedFile receivedUploadcontext.file and context.files.
Right-click behaves differently in the Designer

contextmenu fires your configured actions at runtime only — in LiveView and in preview. On the Designer canvas the right-click is captured to open the Event Manager, so testing it there will not run your actions. Test right-click in preview.

Notes​

Files saved with system.files.save land in the workspace uploads folder and come back with a URL usable by Image, PDF Viewer or Link.

A fileReceived handler reads the file as context.file (and every file picked, as context.files) — not as a bare file. The Event Manager now says so under the event. New in 1.0.8

Size New in 1.0.8​

size sets the picker's height, padding, text and title on one scale shared by every field widget:

sizexssmmdlgxl
Field height28 px36 px44 px52 px64 px
Text12 px13 px14 px16 px18 px

The default, Project default (inherit), follows the project's Control size (Project settings → Theme), so one setting resizes every field on every screen. Set size on a widget only where it has to differ. A field, a dropdown and a button at the same size line up exactly, side by side.

titleSize now defaults to 0, which follows the size. A number you set still wins.

Fields, buttons and menus draw smaller after upgrading to 1.0.8

Before 1.0.8 these widgets had one size, what is now md (a 44 px field). The project's Control size defaults to sm (36 px), sized for desktop dashboards, and every widget whose size is Project default follows it — which is every widget in an upgraded project. On a touch panel, set Project settings → Theme → Control size to md or larger: 44 px is the touch-target minimum.

See also​