2013-05-08 36 views
2

我正在查看是否可以在不指定附件名称的情况下从文档打开附件,因为每个文档只有1个附件。通过URL从文档打开第一个附件

so f.x.而不是domain/view/documentKey/$FILE/attachmentName我想有类似的东西domain/view/documentKey/$FILE/$firstAttachment

这可能吗?

+0

至于你提到标签,我更新了关于这个问题的答案。 – 2013-05-09 07:14:43

回答

0

首先,您需要在窗体上创建一个富文本字段。之后,打开“表单属性”对话框并单击“启动”选项卡(Rocket)。

您现在将有额外的选项启动第一个附件。

enter image description here

[编辑]如果附件是图像 URL溶液。

创建一个“RichText Lite”字段。将其设置为“缩略图”,但不要调整其大小。在图像附件名称中给它一个有意义的名称。例如。 “image.png”(图片显示附件)。

enter image description here

那之后,您可以直接访问附件。

实施例:

http://SERVER/DATABASE.nsf/DOC-UNID/$FILE/image.png 

替换如下。

  • SERVER = Domino服务器。
  • DATABASE =数据库文件是。
  • DOC-UNID =文档UNID数

如果你在浏览器中打开该文档,你会得到一个更精确的URL结构。

+0

其实并没有全部阅读。我看到你想通过URL。我认为你的意思不是Notes网址? (即注释:// ...)。 – 2013-05-08 15:43:24

+0

我需要的HTTP URL,因为我需要为Web(几乎为​​ – 2013-05-08 20:31:32

1

我不认为它确实存在一个“开箱即用”的URL。 但是,为什么你不扩展你自己的代码Rewriting URL in Domino using DSAPI,并用URL的“$ firstAttachment”代替文档的第一个附件名称(我知道,它需要一些努力来找到文档)?

+0

我可能会走那条路的解决方案,我根本就不想再拍“轮” :)谢谢反正高兴听到ü阅读有关重写URL的我。 – 2013-05-08 20:30:37

+0

代理将比DSAPI插件简单得多。即,通过“域/视图/ documentKey”到代理作为一个URL参数,并且具有代理人代码定位文档,定位所述第一附接,建立正确的URL,并生成重定向到它。 – 2013-05-08 21:02:09

3

这是使用XPage打开文档的第一个附件的解决方案。

打开附件的URL是这样的

http://Server/Database.nsf/openAttachment.xsp?id=8f29ad7c7e86d3edc1257b65005ab815 

参数id=具有含有文档的附件的DocumentUniqueID。在XPages中“openAttachment”有这个代码

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 
    <xp:this.beforePageLoad><![CDATA[#{javascript: 
     var docId = context.getUrlParameter('id'); 
     var att = session.evaluate("@AttachmentNames", database.getDocumentByUNID(docId)); 
     if (att[0] != "") { 
      var url = context.getUrl().toString().split(view.getPageName())[0] + "/0/" + docId + "/$FILE/" + att[0]; 
      facesContext.getExternalContext().redirect(url) 
     }}]]> 
    </xp:this.beforePageLoad> 
    Sorry, document has no attachments 
</xp:view> 

如果文档附件的第一连接获取浏览器窗口中打开或下载提供。如果文档没有附件,则显示“对不起,文档没有附件”。

0

我会建议创建自己的虚拟url parameter像下面这样:

http://dummy.url.com/database.nsf/0/documentunid?opendocument&dummyurlparameter=yes

然后通过JavaScript到表单中通过计算文本这样

"window.location.replace(\"/" + @WebDbName + "/0/" + @Text(@DocumentUniqueID) + 
"/$file/" + @URLEncode("Domino";@Subset(@AttachmentNames;1)) + "\")" 

然后,您可以把代码添加这个码的@If内部或使用隐藏式基于

@URLQueryString("urlparameter") != "yes" 
这个文本然后

的结果将是,如果你通过一个正常的文件打开URL,它打开了记录,如果你有新的参数,它打开第一个附件。

或者,根据打开文档的URL将在哪里(例如,如果这是在视图中),您可以使用与上面的JS代码中相同的技巧直接生成URL来打开附件。