Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: magic_online am 18.10.12 - 16:07:05

Titel: Datei aus dem Filesystem mittels einem Agent physikalisch schicken
Beitrag von: magic_online am 18.10.12 - 16:07:05
Es gibt ein Filesystem, indem sich mehreren Dateien, zB. test.exe befinden. Mithilfe eines Portlet möchte ich zum Download eine bestimmte Datei zur Verfügung stellen. Die Datei soll anhand Landcode gesucht und angezeigt. Dieser Landcode liegt in einem Dokument einer Notes DB.  Wenn der User eine Schaltfläche in meinem Portlet klickt, wird ein Agent aufgerufen, wie folgt: "http://servername/USERS/notes.nsf/getFile?openAgent&countryCode=de". Beim Aufruf wird der Agent die Landbezeichnung = "de" bekommen, der mit Documentcontext gelesen wird und soll praktisch die entsprechende Pfad zu der Datei bauen, die Datei holen und physikalisch zurück an dem Portlet schicken. Ich kann die Pfad zu datei bauen. Das Problem entsteht, natürlich, wenn man die Datei als Objeckt zurück an dem Portlet schicken will... Denn, die Frage ist WIE?

Ich wäre natürlich für jeden Rat sehr dankbar, selbstverständlich!

Code


Sub Initialize
	On Error GoTo errHandler
	
	Set s = New NotesSession
	Set db = s.Currentdatabase
	Set context = s.Documentcontext

	

	param = Split(context.Query_String(0),"&")
	
	' der URL ist =  "http://servername/USERS/notes.nsf/getFile?openAgent&countryCode=de"
	param = Split(testURL,"&")
	
	key = getParam(param,1)
	
	Set view = db.Getview("vwCountryCode")
	Set entry=view.Getentrybykey(key, true)
	Set doc=entry.Document
	

	Print "Datei = " + doc.Filename(0)	
	


errHandler:
	MsgBox "Error: " & Err() & " on Line: " & Erl()
	Exit Sub
End Sub

Titel: Re: Datei aus dem Filesystem mittels einem Agent physikalisch schicken
Beitrag von: m3 am 18.10.12 - 16:27:48
Option 1: Du machst im Agent einen http redirect und schickst dem Browser die URL zurueck, unter welcher er die Datei holen soll.

Option 2: Du schreibst Code, der die Datei am Server herunter laedt und anschliessend dem Browser zurueckschickt (du also proxy spielst ...).
Titel: Re: Datei aus dem Filesystem mittels einem Agent physikalisch schicken
Beitrag von: pram am 18.10.12 - 17:56:33
Für Option 1 musst du das Wurzelverzeichnis des Filesystems in der entsprechenden HTTP-Einstellung angeben

Bei Option 2 wirst du sehr bald über dieses Problem stolpern: http://atnotes.de/index.php/topic,50597.0.html

Gruß
Roland