我正在尝试将二进制数据(图像)保存到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);
但是,我收到错误
找不到合适的setProperty方法(java.lang.String,byte [])
使用二进制文件内容设置jcr:data
属性的方法是什么?
答案 0 :(得分:5)
您可以使用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。