xpages:附件如何在网页中工作

xpages:附件如何在网页中工作,xpages,xpages-ssjs,Xpages,Xpages Ssjs,这里的上下文是,在CMS类型的应用程序中,创建内容的用户喜欢复制Notes在文本中任何位置的附件,而不仅仅是页面底部的附件列表。创建页面时,他们希望能够立即使用链接和img标记创建指向附件的链接,而不是先保存文档,然后再编辑文档 我找到了YouAtNotes HTML5多文件上传控件,它允许用户在实际保存文档之前上传附件。保存文档之前上载的附件的URL为: 我在CKEditor中使用此URL创建图像,它看起来很正常:图像显示在编辑器中,并具有以下URL: /myDB.nsf/xsp/.ibmm

这里的上下文是,在CMS类型的应用程序中,创建内容的用户喜欢复制Notes在文本中任何位置的附件,而不仅仅是页面底部的附件列表。创建页面时,他们希望能够立即使用链接和img标记创建指向附件的链接,而不是先保存文档,然后再编辑文档

我找到了YouAtNotes HTML5多文件上传控件,它允许用户在实际保存文档之前上传附件。保存文档之前上载的附件的URL为:

我在CKEditor中使用此URL创建图像,它看起来很正常:图像显示在编辑器中,并具有以下URL:

/myDB.nsf/xsp/.ibmmodres/persistence/DominoDoc-NEW_569-Body/insanity.jpg

然后我保存了文档,它看起来仍然不错。图像正在显示,URL仍然为:

我关闭浏览器,再次打开页面,现在我看到我的图像没有显示,但URL仍然是:

/Belair/xBiblio.nsf/xsp/.ibmmodres/persistence/DominoDoc-NEW_569-Body/indepersence.jpg

但如果我查看下载控件使用的URL,这就是它的功能:

为什么会改变

是否有关于整个attachmentprocess如何工作的文档,以便我能够理解它并向用户提供适当的指示,以便他们能够创建有效的链接

我们的发布代码也有一个特殊性:我们需要保留已发布文档的UNID,以便使用UNID创建的链接仍然有效。这是一个包含大量内容的应用程序,许多外部应用程序都链接到它。因此,当我们发布时,我们实际上将草案的所有内容复制到已经发布的文档中,因此UNID与草案文档不同,因此我们在附件链接方面存在问题。但那是另外一回事。

URL“/Belair/xbibilio.nsf/xsp/.ibmmodres/persistence/DominoDoc-NEW_569-Body/indepersence.jpg”与文档保存前的临时位置相关。这是标准功能,因为

  • SSJS/Java要将文件保存到NSF中,必须在提交之前将其上载到服务器
  • 用户尚未选择保存文件,因此不应将其添加到NSF
  • 该文档尚未保存,因此即使应该保存到NSF,也不存在可保存到的文档
  • URL的组件包括:

    • “/Belair/xBiblio.nsf”,它最终需要提交到的数据库的URL
    • “xsp/.ibmmodres/persistence”,根据NSF的xsp.properties,对应于存储此NSF临时文件的物理文件夹位置的URL;如果NSF的xsp.properties中未定义任何内容,则使用服务器的xsp.properties;如果没有定义,则使用默认位置
    • “DominoDoc-NEW_569”,对未保存的新dominoDocument数据源的临时引用。如果您关闭浏览器并重新打开它,您将获得不同的临时dominoDocument数据源引用,因此我不希望图像显示出来。否则,不同的用户可能会获得彼此的附件
    • “-Body”,文件需要保存到的字段
    • “/inderience.jpg”文件名
    保存文档后,该文件将存储到相关文档的Body字段中,并清理文件系统。URL必须更改,否则附件将无法在其他副本上使用,因为只有数据库被复制,并且DAOS无法对其进行管理

    新URL“”对应于:

    • “myserver/mydb.nsf/xsp/.ibmmodres/domino/OpenAttachment”,用于打开相关附件的简写URL
    • “/belair/xbiblio.nsf/E4E384094564EE9E85257F33005953AE”,存储附件的文档的位置
    • “/Body”,字段名
    • “/inderience.jpg”,附件名称(当然,该字段可以有多个附件)
    以上信息基于《XPages便携命令指南》(用于更改默认临时位置的xsp.properties设置)和《掌握XPages第2版》中记录的内容

    我不确定YouAtNotes上传程序是做什么的,所以我不能说它是否应该在保存时更改URL。但在较新版本的Domino中,可以在不进行完全刷新的情况下上载附件,这可能是一种替代方法

    复制文档时,如果存储的HTML通过URL(包括Unid)引用图像,则需要修改这些引用


    如果您想保留UNID,请记住它们是读写的——您可以设置它们,也可以获取它们。但是,请记住,如果将URL更改为现有文档的同一URL,则会出现问题。请记住,这也是XPages,因此通过XPages应用程序访问的数据不必位于同一数据库中。

    Paul,这是一个很好的信息。当您说“但在较新版本的Domino中,可以在不进行完全刷新的情况下上载附件,这可能是一种替代方法”时,您能给我指一些关于这方面的文档吗?