【问题标题】:How to convert byte[] to Binary to set jcr:data with file contents?如何将 byte[] 转换为 Binary 以使用文件内容设置 jcr:data?
【发布时间】:2015-11-02 17:26:17
【问题描述】:

我正在尝试将二进制数据(图像)保存到 JCR 节点中。我正在使用此方法从印象笔记笔记中获取图像: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 属性的方法是什么?

【问题讨论】:

    标签: java osgi aem jcr


    【解决方案1】:

    您可以使用 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

    【讨论】:

    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2015-05-17
    • 1970-01-01
    相关资源
    最近更新 更多