File upload UI and transport for images and other files, with drag-and-drop, progress, and base64 conversion support.
Access:
app.getService('uploader')
App code:
const uploader = app.getService('uploader');
Plugin:
const uploader = this.app.getService('uploader');
create#
Creates an UploaderInstance bound to a file input or upload box element with merged default and custom params.
Parameters:
- element (
HTMLElement | string) — element - params (
object) — command or form parameters - trigger (
HTMLElement | string) — element or button that opened the dropdown
Returns: UploaderInstance|null
const upload = uploader.create({ element: inputEl });
show#
Shows the upload progress indicator, optionally anchored to a target element.
Parameters:
- target (
string) — scroll target selector or element
Returns: void
const upload = uploader.create({ element }); upload.show();
hide#
Hides the upload progress indicator.
Returns: void
const upload = uploader.create({ element }); upload.hide();
send#
Builds FormData from files and uploads via transport or converts to base64 when image.upload is base64.
Parameters:
- e (
Event) — native DOM event - files (
any) — files
Returns: void
const upload = uploader.create({ element }); upload.send(event);
complete#
Handles upload success or error, runs callbacks, emits upload events, and hides progress after a delay.
Parameters:
- response (
any) — upload or API response object - e (
Event) — native DOM event
Returns: void
const upload = uploader.create({ element }); upload.complete(response, event);
setImage#
Updates the preview image in the upload box, showing a placeholder when url is empty.
Parameters:
- url (
string) — target URL
Returns: void
const upload = uploader.create({ element }); upload.setImage(url);