uploadFileWithController method
Future<RestAPIFileUploadController>
uploadFileWithController(
- RestApiUploadFile file, {
- String replaceOID = '',
- bool patch = true,
- bool fetchToObject = true,
- dynamic out,
Lädt eine Datei mit Upload-Controller hoch
Überträgt eine Datei asynchron auf den Server und erstellt einen Controller zur Überwachung des Upload-Fortschritts. Unterstützt sowohl lokale Dateien als auch Web-Uploads mit Fehlerbehandlung und Status-Callbacks.
file - RestApiUploadFile-Objekt mit Dateipfad oder Bytes
replaceOID - OID eines bestehenden Dokuments zum Ersetzen (optional)
patch - Patch-Modus verwenden (Standard: true)
fetchToObject - Dokument-Objekt nach Upload erstellen (Standard: true)
Returns: RestAPIFileUploadController zur Überwachung des Upload-Status
Der Upload-Prozess erfolgt in folgenden Schritten:
- Upload-ID vom Server anfordern
- Controller erstellen und zu aktiven Uploads hinzufügen
- Asynchronen Upload mit Multipart-Request durchführen
- Optional: Dokument-Objekt in der Datenbank erstellen
- Controller mit Ergebnis oder Fehler abschließen
Der Controller bietet:
- Future für asynchrone Ergebnis-Behandlung
- Automatische Fehlerbehandlung und -weiterleitung
- Tracking aktiver Uploads zur Vermeidung von Duplikaten
Beispiel:
RestApiUploadFile file = RestApiUploadFile.fromPath("/path/to/document.pdf");
RestAPIFileUploadController controller = await api.v1.documents.uploadFileWithController(
file,
fetchToObject: true
);
// Erfolgsfall behandeln
controller.future.then((response) {
if (response.isOk) {
String documentId = response.data['objectId'];
print("Upload erfolgreich: $documentId");
}
}).catchError((error) {
print("Upload fehlgeschlagen: $error");
});
Implementation
Future<RestAPIFileUploadController> uploadFileWithController(
RestApiUploadFile file, {
String replaceOID = '',
bool patch = true,
bool fetchToObject = true,
dynamic out,
}) {
return _uploadExecutor.uploadFileWithController(
file,
replaceOID: replaceOID,
patch: patch,
fetchToObject: fetchToObject,
);
}