首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将cq用户画像转换为base64编码字符串

如何将cq用户画像转换为base64编码字符串
EN

Stack Overflow用户
提问于 2015-05-06 00:54:54
回答 1查看 591关注 0票数 0

我通过granite操作上传了资料图片。如果我们在这里上传配置文件pic,它将在/image/jcr:content ex: /home/users/s/sampleuser/profile/photos/primary/image/jcr:content下以二进制数据的形式添加jcr.data属性

我试图使用org.apache.commons.codec.binary.Base64转换这个二进制数据,但它没有返回正确的编码字符串。

我正在尝试的代码:

代码语言:javascript
复制
Node photoNode = node.getNode("photos/primary/image/jcr:content");
javax.jcr.Binary binaryData = photoNode.getProperty("jcr:data").getBinary();
InputStream input = binaryData.getStream();
int BUFF_SIZE=1024;
byte[] line=new byte[BUFF_SIZE];
ByteArrayOutputStream output=new ByteArrayOutputStream();
while (input.read(line) != -1) {
output.write(line);
}
Base64 base64=new Base64();
byte[] encoded=base64.encode(output.toByteArray());
String enodedString = Base64.encodeBase64String(encoded);
LOG.info("is Base64::"+Base64.isBase64(enodedString));
LOG.info("enodedString"+enodedString);
photo = enodedString;
EN

回答 1

Stack Overflow用户

发布于 2015-05-06 14:48:05

下面是我所做的:

代码语言:javascript
复制
InputStream is = null;
try {
    is = binaryData.getStream();
    byte[] bytes = IOUtils.toByteArray(is);
    String base64 = Base64.encodeBase64String(bytes);
}
catch (IOException e) {
}
finally {
    IOUtils.closeQuietly(is)
}

来自apache-io的IOUtils是你的朋友。我不确定你的代码出了什么问题,因为它看起来没问题,尽管缓冲区有点麻烦。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30058917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档