Ich habe eine Datenbank, auf die der Benutzer keinen Zugriff hat. Noch kann ich in die Datenbank gehen und „lesen“ die Dokumente mit zum BeispielPDF-Datei mit sessionAsSigner öffnen
var db:NotesDatabase = sessionAsSigner.getDatabase("","somedir/some.nsf");
In dieser Datenbank eine PDF-Datei gibt es würde ich öffnen oder herunterladen möchten. Ich habe den Dateinamen und die Unid. Wenn der Benutzer Zugang zu der Datenbank hatte ich es tun konnte mit
http(s)://[yourserver]/[application.nsf] /xsp/.ibmmodres/domino/OpenAttachment/ [application.nsf]/[UNID|/$File/[AttachmentName]?Open
Wie kann ich es tun mit sessionAsSigner ohne auf dem Formular ein $ Public = 1 Feld zu setzen?
edit: die pdf-Datei als Anlage in einem richtextfield
zweiten bearbeitet gespeichert
Ich versuche, die XSnippet von Naveen zu verwenden und machte einige Änderungen
Die Fehlermeldung, die ich bekomme ist: 'OutStream' nicht gefunden
Der Code habe ich versucht, ist:
response.reset();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=" + zipFileName);
var embeddedObj:NotesEmbeddedObject = null;
var bufferInStream:java.io.BufferedInputStream = null;
var outStream:java.io.OutputStream = response.getOutputStream();
embeddedObj = downloadDocument.getAttachment(fileName);
if (embeddedObj != null) {
bufferInStream = new java.io.BufferedInputStream(embeddedObj.getInputStream());
var bufferLength = bufferInStream.available();
var data = new byte[bufferLength];
bufferInStream.read(data, 0, bufferLength); // Read the attachment data
auf der nächsten Zeile ist das Problem
OutStream.write(data); // Write attachment into pdf
bufferInStream.close();
embeddedObj.recycle();
}
downloadDocument.recycle();
outStream.flush();
outStream.close();
facesContext.responseComplete();
Ändern Sie Ihre Zeile in 'outStream.write (data); '- var outStream beginnt nicht mit einem Großbuchstaben. –
Ja, dein Recht. Es funktioniert jetzt. Vielen Dank ! –