Autor Thema: Datei per LS-Agent ausgeben  (Gelesen 4848 mal)

Offline pallas

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
Datei per LS-Agent ausgeben
« am: 26.12.10 - 11:34:19 »
Hallo,

ich möchte per Lotusskript im Web eine Datei an den Browser ausgeben, die ich zuvor von der Platte geladen habe.
Da die auszugebenden Dateien oft im Bereich von einigen MB sind muss ich die Daten in mehreren Schritten per "get" einlesen und "print" ausgeben.
Mein Problem liegt jetzt darin, dass "print" jedes mal auch ein Line-Feed (x0A) schickt und somit die Datei zerstört wird.

Wie kann ich eine Datei, die ich von der Platte einlese eins zu eins an den Browser weiterleiten ???

Im Voraus vielen Dank für Eure Hilfe.

Gruß Thorsten

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Datei per LS-Agent ausgeben
« Antwort #1 am: 26.12.10 - 12:10:10 »
Wenn sie eh auf der Platte liegen, würde ich eine Directory Rule einrichten, sodass man die Files direkt über den Browser adddressieren kann.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline pallas

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
Re: Datei per LS-Agent ausgeben
« Antwort #2 am: 26.12.10 - 12:15:20 »
Hallo,

der Dateinamen wird erst während des Ladens generiert und die Daten kommen aus unterschiedlichen Quellen, sodass eine Directory Rule nicht verwendet werden kann.
Außerdem soll ein direkter Zugriff nicht möglich sein.

Gruß THorsten

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Datei per LS-Agent ausgeben
« Antwort #3 am: 26.12.10 - 14:10:00 »
Ah, hätte diese Info nicht in Deine urspüngliche Frage gehört? ;)

Nachdem Du noch immer nicht spezifiziert hast, WAS Du eigentlich zurückliefern willst, muss ich mal raten:

1) Du kannst in Lotusscript keine Binärdaten an den Browser zurückliefern. Wenn Du PDFs, ... zurückliefern willst, musst Du das in ein temporäres Dokument anhängen und den User darauf referenzieren.

2) IIRC hängt ein Lotusscript Print in einem Webagent nicht automatisch ein CRLF an - kann es sein, dass das aus Deinen Ursprungsdaten kommt?

3) Bei mehreren MBs wirst Du ev. in Agent Laufzeit und timing Probleme laufen - hast Du darüber schon nachgedacht?

HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline pallas

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
Re: Datei per LS-Agent ausgeben
« Antwort #4 am: 26.12.10 - 14:39:29 »
Hallo,

zu 1.: es werden Binärdaten zurückgeliefert - nur eben mit mehreren Line-Feeds
zu 2.: die LF sind nicht Bestandteil der Ursprungsdaten, da ich die Daten auch ohne Probleme direkt aus den Quellen, auf die der Webuser keinen Zugriff hat, verarbeiten kann.
zu 3.: Laufzeitprobleme haben wir keine. wir können ca. 40MB/s über den Agenten liefern ohne, dass sich irgend etwas an der Performance negativ bemerkbar macht.

Ich werde das ganze jetzt mit einem CGI lösen, dass sich die nötigen Daten noch aus der DB holt.

Gruß Thorsten

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Datei per LS-Agent ausgeben
« Antwort #5 am: 27.12.10 - 10:07:45 »
In der Hilfe steht zwar
Zitat
Semicolon at end of exprList:   The next Print statement continues printing on the same line, with no spaces or carriage returns inserted.
Es tut aber nicht wie gewünscht

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Datei per LS-Agent ausgeben
« Antwort #6 am: 03.01.11 - 08:27:53 »
In der Hilfe steht zwar
Zitat
Semicolon at end of exprList:   The next Print statement continues printing on the same line, with no spaces or carriage returns inserted.
Es tut aber nicht wie gewünscht

Gruß
Roland

Nur in dem skizzierten Umfeld? Ich nutze das öfters zum Schreiben von Dateien, da funktioniert das sehr gut

Print #filenum, "Mein Text" ;

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: Datei per LS-Agent ausgeben
« Antwort #7 am: 03.01.11 - 08:47:11 »
Warum hängst Du das File nicht in ein temporäres Notesdocument und adressiertst es einfach so?
Dann über einen periodischen CleanUp Agent das temp-doc wieder löschen.

David
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Datei per LS-Agent ausgeben
« Antwort #8 am: 03.01.11 - 11:48:18 »
Ein
Print "Mein ";
Print "Text"

erscheint sowohl in der Statusleiste des Clients als auch im Browser als
Code
Mein
Text

Habe aber grad was probiert. Es gibt einen Trick, indem man http://en.wikipedia.org/wiki/Chunked_transfer_encoding verwendet:


Code
Sub Initialize
	Print "Content-Type: text/plain"
	Print "Transfer-Encoding: chunked"
	chunck "Mein "
	chunck "Text"
	
End Sub


Sub chunck(s As String)
	Print Hex(Len(s))
	Print s
End Sub

Der Browser gibt dann "Mein Text" aus.

Gruß
Roland
« Letzte Änderung: 03.01.11 - 11:50:10 von pram »
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz