问题描述
我正在创建一个LotusScript Web代理,该代理将读取网络上某处pdf文件的内容,并将其作为流返回给浏览器.
I'm creating a LotusScript web agent that reads the content of a pdf file somewhere on the network and returns it as a stream to the browser.
该代理将被称为:getPDF?openAgent&pdfId=123456
,它应直接返回pdf流. (我尚未实现url参数捕获)
the agent will be called like this : getPDF?openAgent&pdfId=123456
and it should directly returns the pdf stream. (I didn't implement yet the url parameter catching)
这是我目前的尝试,我仍然遇到将读取缓冲区转换为最终流的问题
Here's my current try, I still have an issue to convert the read buffer to the final stream
Sub Initialize
On Error GoTo errrorhandle
Dim session As New NotesSession
Dim stream As NotesStream
Set stream = session.CreateStream
Dim buffer As variant
Dim fileNum As Integer
Dim txt As String
Dim filename As String
Dim filecontent As String
filename = "C:\temp\test.PDF"
If Not stream.Open(filename,"binary") Then
MessageBox filename,, "Open failed"
Exit Sub
End If
If stream.Bytes = 0 Then
MessageBox filename,, "File has no content"
Exit Sub
End If
Print "content-type:application/pdf"
Do
buffer = stream.read(1)
Print buffer(0)
Loop Until stream.IsEOS
Call stream.Close
Exit Sub
errrorhandle :
Print "Error :" & Error & " at line : " & Erl
Exit sub
End Sub
推荐答案
在 Thomas Adrian回应中,附上pdf放入数据库中的文档中,然后按所述提供链接是最佳解决方案.
Following on Thomas Adrian response, attaching the pdf into a document in a database and then serve the link as described is the best solution.
请记住,如果该数据库具有或需要限制访问权限,则此要求对用户进行身份验证.
Keep in mind that this will require the user to be authenticated, if said database has or needs restricted access.
如果网络用户不是经过身份验证的用户,则您至少需要授予读者访问托管数据库的ACL中的匿名"权限,才能使其正常工作...如果数据库具有其他身份,则并不总是建议目的.
If the web users are not authenticated users, you'll need to give at least reader access to "Anonymous" in the ACL of the hosting database for this to work... which is not always advisable if the database has other purposes.
但是,您可以为此目的创建专用数据库,并具有不受限制的ACL访问权限.
You can however create a dedicated database just for this purpose, with unrestricted ACL access.
这篇关于从LotusScript Web代理将pdf文件流式传输到浏览器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!