Uploader widget
The Uploader creates one record per selected file on a target object. Use it when each file needs its own row (and optional metadata), typically as children of a parent record on a detail or edit page.
Do not model this as “many files in one File field”: a File field stores a single blob per record. Per-file metadata and a parent link belong on child records.
Typical scenarios:
- attach several supporting documents to a case, each as its own
Documentrow; - upload photos into a gallery object linked to the current project;
- let partners drop multiple contracts into a portal, with status/type set by tasks.
Prefer the Importer for CSV/Excel row batches. Prefer a normal form File field when the user uploads exactly one file into the current record.
Data model
- Define a child object (for example
Document) with:- a File (or Image) field for the blob;
- a Reference to the parent object;
- any metadata fields (type, status, notes, …).
- On a parent detail/edit page, add a grid or gallery of child records filtered to the current parent.
- Add an Uploader for the child object — preferably the picker entry that connects it to the current page’s parent (for example upload Document files connected to the current page’s Case). That seeds a widget task which sets the parent reference from
page_currenton each created record.
Builder settings
- File field — which File/Image field receives each blob (auto-selected when the object has exactly one).
- Tasks — run once per created record (same pattern as the Importer). Use them for the parent FK (auto-added when connected), literal defaults, and computed metadata.
- Follow-up — redirect or message after a successful batch.
You can also restrict which formats the File field accepts — see Allowed file types.
Live behaviour
- The user selects one or more local files, and/or
- When SharePoint import is enabled, Browse SharePoint opens the picker in multi-select mode; each pick is staged like a form SharePoint import.
- On submit, for each local upload or staged remote file the Uploader:
- inserts a child record with the filename;
- stores the blob on that record;
- runs widget tasks with
view_currentbound to the new row.
Ordinary form File fields remain single-file (including their Browse SharePoint control).