如何将 byte[] 转换为 Binary 以使用文件内容设置 jcr:data?
How to convert byte[] to Binary to set jcr:data with file contents?
我正在尝试将二进制数据(图像)保存到 JCR 节点中。我正在使用以下方法从印象笔记中获取图像:public byte[] getBody() and then trying to set property jcr:data with the contents of the file using setProperty(string, Binary)
我就是这样做的:
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 to convert the InputStream to a 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。
我正在尝试将二进制数据(图像)保存到 JCR 节点中。我正在使用以下方法从印象笔记中获取图像:public byte[] getBody() and then trying to set property jcr:data with the contents of the file using setProperty(string, Binary)
我就是这样做的:
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 to convert the InputStream to a 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。