【发布时间】:2021-06-11 08:50:04
【问题描述】:
我已经使用generateXML() 方法从lotus.domino.Document 生成了XMl 文件。
下面是生成的 XML 的片段。
<item name="$FILE" summary="true" sign="true" seal="true">
<object>
<file hosttype="msdos" compression="none" flags="storedindoc" encoding="none" name="13303154.pdf" size="864787">
<created>
<datetime dst="true">20210331T164922,93-04</datetime>
</created>
<modified>
<datetime dst="true">20210331T164922,93-04</datetime>
</modified>
<filedata>somedatahere</filedata>
</file>
</object>
</item>
我的问题是,如何从数据中获取13303154.pdf。数据太长,这里就不贴了。如果需要,我也可以发布数据。
提前致谢
【问题讨论】:
-
我的理解是这是base64编码的数据,但并不直接代表文件。它表示 Notes API 用作 NSF 内文件数据容器的 CD 记录的二进制数据。换句话说,文件数据在那里,但它的结构需要Notes API 头文件才能正确解释。 StackOverflow 上还有几个其他问题指出了这一点,尽管这些问题的背景是嵌入式图形而不是附件。
-
感谢@RichardSchwartz 的支持。由于这两个链接都不是决定性的,我试图从不同的途径获取文件。我认为没有任何直接的 API 可以将 XML 数据读取到文件中。再次感谢您的支持。
-
我刚刚注意到另一件事。 XML 指示 $FILE 项的 seal="true"。这意味着文档已加密,并且附件在加密范围内。除非您拥有当前用户 ID 中的密钥,否则您无法从文档的加密数据中读取 任何内容。这可以是私钥或共享密钥,具体取决于文档的创建方式。
-
感谢@RichardSchwartz。我不知道那件事。我将使用 emobj.extractFile("uniquePath" + File.separatorChar + "attachmentName");用于提取附件。
标签: java xml lotus-notes