如何将byte []转换为Binary以设置jcr:包含文件内容的数据?
作者:互联网
我试图将二进制数据(图像)保存到JCR节点.我正在使用此方法从evernote提取图像:public byte[] getBody()然后尝试使用setProperty(string, Binary)设置属性jcr:data和文件内容
这就是我这样做的方式:
Node n;
byte [] fileContent = resrouce.getData().getBody();
....
n.setProperty("jcr:mimeType", "image/png");
n.setProperty("jcr:data", fileContent);
但是,我收到一个错误
no suitable method found for setProperty(java.lang.String,byte[])
使用二进制文件内容设置jcr:data属性的方法是什么?
解决方法:
您可以使用ValueFactory将InputStream转换为Binary值.
ValueFactory可以从Session对象获得.
ValueFactory factory = session.getValueFactory();
InputStream is = new ByteArrayInputStream(fileContent);
Binary binary = factory.createBinary(is);
Value value = factory.createValue(binary);
n.setProperty("jcr:data", value);
要了解有关写入存储库的更多信息,请参阅此specification.
标签:java,osgi,aem,jcr 来源: https://codeday.me/bug/20190609/1203635.html