Hallo zusammen,
ich lade momentan folgendermassen via
Indy eine Datei herunter:
Code:
IdHTTP.Get(Host + '/restapi/index.php/document/' + String(lvSearch.Items.Item[i].Data) + '/content', Stream);
Stream.SaveToFile(GetSpecialFolder(CSIDL_APPDATA) + '\test.msg');
Das funktioniert soweit auch, dennoch habe ich hierzu zwei Fragen:
1.
Ich muss ja derzeit für das SaveToFile die Dateiendung und vorzugsweise auch den Dateinamen vorab wissen.
Besteht die Möglichkeit, dass mir die
Indy Komponente das vorab liefern kann so dass die Datei (Dateityp hinter dem Download kann sich ändern) immer mit korrekter Endung gespeichert wird?
2.
Gibt es eine Möglichkeit, die heruntergeladene Datei nicht zu speichern und quasi "nur" temporär direkt aus dem Stream heraus zu öffnen?
Falls nicht, besteht die Möglichkeit zu erkennen ob die heruntergeladene Datei noch offen ist und falls nicht, diese dann zu löschen?
Zum Hintergrund:
Ich bastel gerade an einem Outlook Addin, welches in einem DMS nach Dokumenten sucht.
Durch Doppelklick auf das Dokument, soll dieses vom DMS via
URL heruntergeladen und geöffnet werden.
Aber lediglich nur zur Anzeige.
Wenn ich das Dokument wieder schließe, dann soll die temporär heruntergeladene Datei gelöscht werden.
Vielen Dank im Voraus schon mal für Eure Hilfe.
Falls Ihr mehr Informationen benötigt, so meldet Euch gern.