# File-Download ohne Speichern einer lokalen Kopie



## stg (31. Mrz 2016)

Folgendes Szenario:
Der Kunde wünscht eine Möglichkeit ein (Excel-)File aus einer bestehenden Web-anwendung heraus zu öffnen. Sofern der User nicht (wissentlich) dieses Dokument speichert, soll keine lokale Kopie auf der Maschine des Users zurückbleiben, wenn das Dokument wieder geschlossen wird.

Bisherige Standard-Lösung:
Das Excel-File auf dem Server generiert und über einen Download-Link per HTTP an den Client geschickt. Der User bekommt standardmäßig im Browser einen File-Prompt angezeigt mit der Möglichkeit das File zu öffnen oder zu speichern.

Problem:
Klickt der User auf "Öffnen" wird dennoch das File auf den Client-Rechner heruntergeladen und im %TEMP% Verzeichnis gespeichert. Von dort aus wird es anschließend automatisch geöffnet. Schließt der User nun aber sein lokales Excel, so bleibt dir Kopie im %TEMP% Folder erhalten. Dies ist ausdrücklich nicht erwünscht.

Hat jemand eine Idee, wie das Problem zu lösen oder zu umgehen ist?

- Der User benutzt ein Windows OS, in der Regel Windows 7
- Der User befindet sich im selben VPN wie die Web-Anwendung
- Die Anwendung selbst ist eine JEE7 Webanwendung
- Clientseitig werden unterschiedlichste Browser verwendet


----------



## Thallius (31. Mrz 2016)

Da das temp ja von Client (Browser) angelegt wird, hast du da glaube ich keinen Einfluß drauf. Die einzige Möglichkeit wäre es einen eigenen Client zu benutzen.

Gruß

Claus


----------



## Flown (31. Mrz 2016)

Ich glaube sowas geht überhaupt nicht, wenn die Clientanwendung "file"-basierend ist. Du bist gezwungen eine physische Datei anzulegen, außer das Clientprogramm unterstützt soetwas wie "Streams". Selbst dann müsste der Client das selbst irgendwo zwischenlagern oder im Hauptspeicher halten.

Einzige Lösung wäre eine Webanwendung wie Office-Online, die dir Daten online anzeigt und wenn sie geändert werden, muss man sie abspeichern. Mehr dazu fällt mir nicht ein.


----------



## kneitzel (31. Mrz 2016)

Zumal das ja auch ein generelles Problem ist. Wenn vom Unternehmen temporäre Dateien als kritisch angesehen werden, dann würde ich doch eher da ansetzen und dafür sorgen, dass hier automatisch bereinigt wird.
Bezüglich IE gibt es Registry Keys, die gesetzt werden können:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Cache
Persistent = 0
bzw. 
USER Administrative Templates\Windows Components\Internet Explorer\Internet Control Panel\Advanced Page
"Empty Temporary Internet Files folder when browser is closed"

Das ist aber nicht das Temporäre Files Directory. Dazu gibt es aber auch Möglichkeiten, die nicht ganz trivial sind, da GPOs nicht beim LogOff getriggert werden können. Da wäre aber ein Script möglich, das beim LogOff ausgeführt wird.

Wobei ich diese ganze Thematik für suboptimal halte. Wenn sensitive Daten auf den Systemen sind, dann ist evtl. eine Verschlüsselung des Systems besser. Also Bitlocker bzw. EFS wären da dann die Alternativen, die mir einfallen. Dann liegen die Daten zwar auf dem System aber sie sind verschlüsselt.
(Und wenn man eine vernünftige SSD hat, die Verschlüsselung unterstützt, dann hat man beim richtigen Setup auch kaum/keine Performance Einbußen, so Bitlocker da direkt drauf aufsetzen darf und kann.)

Soviel einfach einmal von meiner Seite zu diesem Thema.


----------



## stg (31. Mrz 2016)

BitLocker wird bereits eingesetzt. 
Die automatische Bereinigung systemseitig durchzuführen ist mit großer Wahrscheinlichkeit keine Option, die wir durchsetzen können (kleine Insel-Lösung im großen IT-Sumpf eines Großkonzerns)

Der aktuelle Gedanke geht dahin, die Web-Anwendung auf dem Server auf Anfrage ein shared Directory einrichten zu lassen, die generierte Datei dort abzulegen und das directory dem user freizugeben. Anschließend wird kein üblicher Web-Link, sondern eine file URI verfügbar gemacht, über den die Datei geöffnet werden kann. Das hinterlässt offenbar keine Spuren in irgendwelchen Temp-Directories beim Client. Nach Ablauf einer gewissen Frist wird das Directory samt Inhalt dann wieder entfernt. Jetzt mal schauen, ob wir den Prozess automatisiert bekommen, aber das sollte denke ich machbar sein. 
Mal schauen, was draus wird 

Wenn jemand weitere Anregungen oder Ideen hat, dann gerne immer her damit


----------



## kneitzel (31. Mrz 2016)

Hmm. Was mir da dann einfällt wäre Sharepoint. Aber egal was Ihr macht: Der User kann da durchaus auch lokal was Speichern und so. Und ich bin mir jetzt nicht sicher, dass Office keine lokalen Dateien anlegt, wenn etwas so geöffnet wird.

Was für Funktionen soll es denn geben? Wenn es nur um ein Anzeigen geht, dann gibt es evtl. Tools zum konvertieren so dass es dann doch wieder rein im Browser angezeigt wird. Und evtl. gibt es ja auch Lösungen, die ein online Bearbeiten möglich machen. Ginge dann Richtung private Cloud. (Google und MS haben sowas ja im Programm)


----------



## kneitzel (31. Mrz 2016)

Ein Link bezüglich Microsoft / Sharepoint / Office wäre evtl.
https://support.office.com/en-us/ar...uthoring-ee1509b4-1f6e-401e-b04a-782d26f564a4


----------



## Thallius (31. Mrz 2016)

@stg

Willkommen im Reich der Großkonzerne  Ich ärgere mich da schon seit 5 Jahren jetzt mit rum, dass man immer "fuschen" muss wenn man was erreichen will.

Gruß

Claus


----------



## stg (1. Apr 2016)

SharePoint ist auch vorhanden, jedoch erscheint eine Integration in SharePoint zu aufwändig. Dafür sind die Kapazitäten nicht da.

Von der Funktionalität her geht es wirklich nur um das reine Anzeigen eines Excel-Dokuments. Es darf nur nicht einfach ohne Wissen des DAUs dieses Dokument dieses Dokument lokal beim User dauerhaft gespeichert werden. Das hat einfach rechtliche Gründe, auf die wir hier nicht näher eingehen müssen.
Alternative Anzeigemöglichkeiten des angeforderten Contents wäre mir auch lieber, aber der Kunde will es _genau so und nicht anders _



kneitzel hat gesagt.:


> Und ich bin mir jetzt nicht sicher, dass Office keine lokalen Dateien anlegt, wenn etwas so geöffnet wird.



Da bin ich mir auch nicht sicher, bisher habe ich jedoch nichts gefunden, was dauerhaft zurückbleibt. Vielleicht weiß hierzu ja noch jemand was genaueres?


----------

