这里的上下文是,在CMS类型的应用程序中,创建内容的用户喜欢重现Notes在文本中任何位置具有附件的方式,而不仅仅是页面底部的附件列表。创建页面时,他们希望能够使用链接和img标签立即创建指向附件的链接,而不是先保存文档然后再次编辑。
我找到了YouAtNotes HTML5多文件上传控件,该控件允许用户在实际保存文档之前上传附件。然后保存上传到befor ethe doc的附件的URL:
http://myserver/myDB.nsf/xsp/.ibmmodres/persistence/DominoDoc-NEW_569-Body/indifference.jpg
我在CKEditor中使用此URL来创建图像,它看起来没问题:图像显示在编辑器中并具有以下URL:
/myDB.nsf/xsp/.ibmmodres/persistence/DominoDoc-NEW_569-Body/insanity.jpg
然后我保存文档,它仍然看起来不错。图像显示且URL仍然是:
http://myserver/mydb.nsf/xsp/.ibmmodres/persistence/DominoDoc-NEW_569-Body/indifference.jpg
我关闭浏览器,再次打开页面,现在我看到我的图片没有显示,但网址仍然是:
/Belair/xBiblio.nsf/xsp/.ibmmodres/persistence/DominoDoc-NEW_569-Body/indifference.jpg
但是如果我查看下载控件使用的URL,那就是:
为什么会改变?
是否有关于整个附件过程如何工作的文档,因此我可以理解它并向用户提供适当的指示,以便他们可以创建有效的链接。
我们的发布代码也具有特殊性:我们需要保留已发布文档的UNID,以便使用UNID创建的链接仍然有效。这是一个内容很多的应用程序,许多外部应用程序链接到它。因此,当我们发布时,我们实际上将草稿的所有内容复制到已发布的文档中,因此UNID与草稿文档不同,因此我们在附件链接方面存在问题。但这是别的......
答案 0 :(得分:2)
网址“/Belair/xBiblio.nsf/xsp/.ibmmodres/persistence/DominoDoc-NEW_569-Body/indifference.jpg”与文档保存前的临时位置相关。这是标准功能,因为
网址的组成部分是:
保存文档后,文件将存储到相关文档的“正文”字段中,并清理文件系统。 URL必须更改,否则附件将无法在其他副本上使用,因为只有数据库被复制,并且DAOS无法管理它。
上述信息基于XPages Portable Command Guide(用于更改默认临时位置的xsp.properties设置)和Mastering XPages 2nd Edition中记录的内容。
我不确定YouAtNotes上传器的作用,所以我不能说是否应该在保存时更改URL。但是在更新版本的Domino中,附件可以在没有完全刷新的情况下上传,这可以作为替代方案使用。
当您复制文档时,如果您要存储通过其URL(包括UNID)引用图像的HTML,则需要修改这些引用。
如果您想保留UNID,请记住它们是可读写的 - 您可以设置它们以及获取它们。但是,请记住,如果将URL更改为现有文档的相同URL,则会出现问题。请记住,这也是XPages,因此通过XPage应用程序访问的数据不必位于同一数据库中。