通过 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()}" />
我有一个面向 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()}" />