t×tecexpressby TeKOcloud
ENv0.7.1
Dateien & Karten / VUE

TxFileUploader.

Interaktive Vorschau

Demo: Uploads werden nur entgegengenommen und sofort verworfen. Keine Speicherung.

Dateiauswahl und Uploadwarteschlange mit Größen-/Typprüfung, Fortschritt und Wiederholung ab Dateianfang.

PropTypStandardBedeutung
dataSourceTxSource<File> | undefinedundefinedListe, Konfiguration oder DataSource-Instanz; hat Vorrang vor items.
adapterTxUploadAdapter | undefinedundefinedUploadfunktion für eine Datei.
multipleboolean | undefinedfalseErlaubt mehrere Dateien.
acceptstring | undefinedundefinedBrowser-Dateitypfilter, etwa .pdf oder image/*.
maxFileSizenumber | undefinedundefinedMaximale Dateigröße in Bytes.
minFileSizenumber | undefined0Minimale Dateigröße in Bytes.
uploadModestring | undefineduseButtonsSofortiger oder per Schaltfläche gestarteter Upload.
disabledboolean | undefinedfalseSperrt die Interaktion.
labelstring | undefinedDateien hochladenBeschriftung beziehungsweise zugänglicher Name.

Ereignisse

EventPayload / Verhalten
valueChangedNeuer Wert in { value }; Editoren liefern zusätzlich previousValue und event.
uploadedUpload erfolgreich: { file, result }.
uploadErrorUpload fehlgeschlagen: { file, error }.
progressUploadfortschritt in Bytes: { file, loaded, total }.

Über eine Template-Ref erreichbar: upload(): Promise<void[]> startet alle bereiten Warteschlangeneinträge parallel; cancel(): void bricht alle laufenden Einträge ab. Beispiel: await uploader.value?.upload() beziehungsweise uploader.value?.cancel(). Die Ref wird mit const uploader = ref<{ upload(): Promise<void[]>; cancel(): void } | null>(null) angelegt und mit ref="uploader" gebunden.

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>