通过 Java Bean 在 XPages 中显示图像附件

Display an Image attachment in XPages via a Java Bean

我有一个面向 public 的应用程序,它采用多个 nsf 架构。我有一个面向 public 的 nsf,它通过非 public 面向 nsf 中的 Java 控制器管理数据。出于安全原因,非 public nsfs 不允许 URL 浏览,所以我不能使用通常的 "/0/" + UNID + "/$FILE/" + PhotoFilename 来显示图像XPage.

在控制器中,我可以从文档中获取附件 (EmbeddedObject),但我不确定如何让它显示在 控件中。

我正在使用 OpenNTF api,但我看不到任何有用的东西。

谢谢, 斯科特

一种解决方案:对图片进行base64编码,并在img标签中使用编码后的字符串。这是一个简单的代码示例,它在 Java 控制器的方法中使用来自 EmbeddedObject 的输入流:

public String getImageAsBase64(InputStream inputStream) {
    return Base64.encodeBytes(IOUtils.toByteArray(inputStream));
}

然后您可以显示 base64 编码的图像(假设您的 Java 控制器被称为 'controller'):

<img src="data:image/jpeg;base64,#{javascript:controller.getImageAsBase64()}" />