Skip to content

File Upload

Multi-file upload with queue, progress, retries, and ab-file:* lifecycle events.

HTML tag: c-e54bf928d239944758c68382a65d327e9

  • upload multiple files with progress
  • drag-drop file queue to server
  • batch attachment upload (not single asset field)
PropTypeDefaultDescription
multipleboolean
acceptstring
max_file_sizenumber
max_file_countnumber
upload_urlstring
labelstring
aria_labelstring
max_total_sizenumber
button_onlyboolean
disabledboolean
readonlyboolean
methodstringPOST
headersobject[object Object]
with_credentialsboolean
form_field_namestringfile
additional_fieldsobject[object Object]
auto_uploadbooleantrue
concurrencynumber3
retry_countnumber
retry_backoff_msnumber1000
i18nobject[object Object]
  • Set multiple, accept, max_file_size, max_file_count, upload_url.
  • auto_upload starts queue; listen to ab-file:complete / ab-file:error / ab-file:all-complete.
  • ab-file:progress for UI bars.
  • Use addFiles/open/start methods for programmatic control.
EventDetail
ab-file:selectfiles: File[]
ab-file:queueitems: object[]
ab-file:progressitem: object, loaded: number, total: number, percent: number
ab-file:completeitem: object, response: any, saved_file: object
ab-file:erroritem: object, error: object
ab-file:removeitem: object
ab-file:cancelitem: object
ab-file:rejectfiles: File[], reasons: object[]
ab-file:startitem: object
ab-file:before-uploaditem: object, plan: object
ab-file:all-completesucceeded: object[], failed: object[]
SignatureDescription
open()
`addFiles(files: FileListFile[])`
start()
cancel(item_id: string)
remove(item_id: string)
clear()
get_queue()

Do not use for single image avatar field (ab-asset-upload). Do not expect .value string binding like asset-upload.

<c-e54bf928d239944758c68382a65d327e9 .multiple=${true} .upload_url=${'/api/upload'} @ab-file:complete=${onDone} @ab-file:all-complete=${onAll}></c-e54bf928d239944758c68382a65d327e9>