【发布时间】:2017-09-02 12:51:22
【问题描述】:
Cq5 图像组件有二进制图像数据,我需要将此数据暴露在 api 中。
为此,我尝试获取输入流并将其读取为字符串。
InputStream is = jcrnode.getProperty(JcrConstants.JCR_DATA).getBinary().getStream();
String imageData = jcrnode.getProperty(JcrConstants.JCR_DATA).getString();
当尝试将字符串写入 FileOutputStream 时,我没有得到图像。
在尝试手动下载 jcr:data 并打开文件时,图像查看器会提供图像。 但是当将其转换为字符串并返回时对我不起作用。对此有何建议。
【问题讨论】:
-
为什么需要将其转换为字符串?字符串看起来像垃圾。
-
不知道为什么会这样,但你可以使用
String imageData = Base64.encodeBytes(jcrnode.getProperty(JcrConstants.JCR_DATA));,然后在`" />.这就是您引用嵌入图像的方式。 -
需要通过api将图片jcr:data暴露给其他环境消费,发送图片文件。关于实现这一目标的最佳方法的任何建议。我尝试编码图像二进制并解码并返回图像。在 java 6 上看起来对我来说很难。任何例子
-
图像数据可以从 API 公开为 base64 编码字符串。请参阅我上面关于如何做到这一点的评论。
-
如何将图片数据作为Base64编码字节转换为数据uri。
标签: java image aem fileinputstream