0

当您单击 XPiNC 中文件下载控件中的附件链接时,您将被提升以保存附件。是否可以配置文件下载控件直接打开附件而不提示用户保存?我们使用的是 8.5.2 FP3。

4

2 回答 2

0

Handling of an "attachment" is primarily done by the Browser (XPiNC being a firefox browser inside Notes). If for example, a PDF plugin is installed in the browser and the servers sends the corresponding "application/pdf" mime-type with the file, the browser uses that plugin to display the file. The correlation between mime-type and plugin or external application in the browser is something the server/webapplication can not influence.

What you can do on the server side is sending the mime-type "application/octet-stream" instead of the one corresonding to the file type, causing the browser to display the "Select application or download" dialog. So in Xpages, you would have to redirect the download through a XPage, where you set the corresponding HTTP Headers as shown in Set cache headers on an XPage and How to force PDF files to open in browser?

于 2013-09-05T18:28:36.740 回答
0

我没有使用文件下载控件或XPINC,但绝对可以让您的xpage或视图控件直接打开附件。此方法绕过下载控制。

请参阅 Stephan Wissel 的这篇文章:http: //www.wissel.net/blog/d6plinks/SHWL-86QKNM,它为您提供了一些可用于构建 URL 的 SSJS。您可以在按钮的 onClick 方法中使用它。您实际上是在以一种您希望它执行的方式复制下载控件的功能。

如果您想从视图控件执行相同的操作,请查看此帖子: http: //notespeak.blogspot.com/2013/02/how-to-launch-attachment-from-view.html

请注意,不同浏览器的行为略有不同,但适用于所有专业。


迈克尔,这是我使用的代码:

    var unid = rowValue.getUniversalID()
    var url = getAttachmentURL(unid, "storetransfer.pdf", "Testing//test.nsf")
    url = "/" + url + ";"
    view.postScript("window.open('" + url + "', '_blank', 'height=120,width=650,top=10,left=10,resizable=yes');");

我确实修改了 Stephan 的代码,因为我的数据与我的代码位于不同的 NSF 中。您可能知道这一点,但 view.postScript 允许您从 SSJS 调用客户端 JavaScript。它总是最后运行,因此得名。这与评论中提到的 Notesin9 视频中的代码相同。我刚刚对此进行了测试,它的工作方式与我认为的一样,但在 Firefox 中它确实会尝试阻止弹出窗口,然后必须推动“打开”。希望这可以帮助。

于 2013-09-05T14:54:09.237 回答