uploadFileWithController method

Future<RestAPIFileUploadController> uploadFileWithController(
  1. RestApiUploadFile file, {
  2. String replaceOID = '',
  3. bool patch = true,
  4. bool fetchToObject = true,
  5. 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:

  1. Upload-ID vom Server anfordern
  2. Controller erstellen und zu aktiven Uploads hinzufügen
  3. Asynchronen Upload mit Multipart-Request durchführen
  4. Optional: Dokument-Objekt in der Datenbank erstellen
  5. 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,
  );
}