uploadFile method
Future<RestApiResponse>
uploadFile(
- RestApiUploadFile file, {
- String replaceOID = "",
- bool patch = true,
- 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:
- Upload-ID vom Server anfordern
- Datei mit Multipart-Request hochladen
- 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;
}
}