t×tecexpressby TeKOcloud
DEv0.7.1
Files & maps / VUE

TxFileUploader.

Interactive preview

Demo: Upload requests are consumed and immediately discarded. Nothing is stored.

File picker and upload queue with size/type checks, progress and retry from the beginning.

PropTypeDefaultMeaning
dataSourceTxSource<File> | undefinedundefinedList, configuration or DataSource instance; takes precedence over items.
adapterTxUploadAdapter | undefinedundefinedUpload function for one file.
multipleboolean | undefinedfalseAllows multiple files.
acceptstring | undefinedundefinedBrowser file type filter, such as .pdf or image/*.
maxFileSizenumber | undefinedundefinedMaximum file size in bytes.
minFileSizenumber | undefined0Minimum file size in bytes.
uploadModestring | undefineduseButtonsImmediate upload or upload started through buttons.
disabledboolean | undefinedfalseDisables interaction.
labelstring | undefinedDateien hochladenLabel or accessible name.

Events

EventPayload / behavior
valueChangedNew value in { value }; editors also include previousValue and event.
uploadedUpload succeeded: { file, result }.
uploadErrorUpload failed: { file, error }.
progressUpload progress in bytes: { file, loaded, total }.

Available through a template ref: upload(): Promise<void[]> starts all ready queued entries in parallel; cancel(): void cancels all active entries. Example: await uploader.value?.upload() or uploader.value?.cancel(). Declare const uploader = ref<{ upload(): Promise<void[]>; cancel(): void } | null>(null) and bind ref="uploader".

vue
<script setup lang="ts">
import { TxFileUploader, txHttpUpload } from '@tekocloud.de/tecexpress'
import '@tekocloud.de/tecexpress/themes/index.css'
// Demo endpoint: consumes the request without storing files. Maximum 1 MiB.
const upload = txHttpUpload({ url: '/api/upload' })
</script>

<template>
  <TxFileUploader :adapter="upload" accept=".txt" :max-file-size="1048576" />
</template>