【发布时间】:2013-09-05 14:29:39
【问题描述】:
当您在 XPiNC 的文件下载控件中单击附件的链接时,您将被提示保存附件。是否可以配置文件下载控件直接打开附件而不提示用户保存?我们使用的是 8.5.2 FP3。
【问题讨论】:
-
Sean 的解决方案很聪明,但不是一个完整的解决方案。谢谢你把我带到那里。
当您在 XPiNC 的文件下载控件中单击附件的链接时,您将被提示保存附件。是否可以配置文件下载控件直接打开附件而不提示用户保存?我们使用的是 8.5.2 FP3。
【问题讨论】:
“附件”的处理主要由浏览器完成(XPiNC 是 Notes 中的 firefox 浏览器)。例如,如果在浏览器中安装了 PDF 插件,并且服务器将相应的“application/pdf”mime 类型与文件一起发送,则浏览器使用该插件来显示文件。 mime-type 与浏览器中的插件或外部应用程序之间的相关性是服务器/Web 应用程序无法影响的。
您可以在服务器端发送 mime 类型的“application/octet-stream”而不是与文件类型对应的一种,从而导致浏览器显示“选择应用程序或下载”对话框。因此,在 Xpages 中,您必须通过 XPage 重定向下载,并在其中设置相应的 HTTP 标头,如 Set cache headers on an XPage 和 How to force PDF files to open in browser 所示?
【讨论】:
我没用过文件下载控件或者XPINC,但是绝对可以让你的xpage或者view控件直接打开附件。此方法绕过下载控制。
请参阅 Stephan Wissel 的这篇文章:http://www.wissel.net/blog/d6plinks/SHWL-86QKNM,它为您提供了一些 SSJS,您可以使用它们来构建 URL。您可以在按钮的 onClick 方法中使用它。您实际上是在按照您希望的方式复制下载控件的功能。
如果您想通过视图控件执行相同的操作,请查看此帖子:http://notesspeak.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。它总是最后运行,因此得名。这与 cmets 中提到的 Notesin9 视频中的代码相同。我刚刚对此进行了测试,它的工作方式与我认为的一样,但在 Firefox 中它确实会尝试阻止弹出窗口,然后必须推动“打开”。希望这会有所帮助。
【讨论】: