uploadFile method

Future<RestApiResponse> uploadFile(
  1. RestApiUploadFile file, {
  2. String replaceOID = "",
  3. bool patch = true,
  4. bool fetchToObject = true,
})

Lädt eine Datei auf den Server hoch

Überträgt eine lokale Datei oder Web-Datei auf den Server und erstellt optional ein Dokumentobjekt in der Datenbank.

file - RestApiUploadFile-Objekt mit Dateipfad oder Bytes replaceOID - OID eines bestehenden Dokuments zum Ersetzen patch - Patch-Modus verwenden (Standard: true) fetchToObject - Dokument-Objekt nach Upload erstellen (Standard: true)

Returns: RestApiResponse mit Upload-Status und Dokument-ID

Der Upload-Prozess erfolgt in drei Schritten:

  1. Upload-ID vom Server anfordern
  2. Datei mit Multipart-Request hochladen
  3. Dokument-Objekt erstellen (falls fetchToObject=true)

Beispiel:

RestApiUploadFile file = RestApiUploadFile.fromPath("/path/to/document.pdf");
RestApiResponse response = await manager.uploadFile(
  file,
  fetchToObject: true
);
if (response.isOk) {
  String documentId = response.data['objectId'];
}

Implementation

Future<RestApiResponse> uploadFile(
  RestApiUploadFile file, {
  String replaceOID = "",
  bool patch = true,
  bool fetchToObject = true,
}) async {
  try {
    RestApiResponse restApiResponse = await _getUploadID();

    String uploadID = jsonDecode(
      restApiResponse.httpResponse.body,
    )["data"]["uploadId"];

    await _postUploadFile(file, uploadID);

    if (!restApiResponse.isOk) {
      throw Exception("Can not upload file");
    }

    if (fetchToObject) {
      return await _patchUploadFile(uploadID, replaceOID);
    } else {
      return restApiResponse;
    }
  } catch (_) {
    rethrow;
  }
}