如何将单个或多个附件附加到CouchbaseLite文档 - Android?

时间:2014-03-19 09:00:05

标签: java android attachment couchbase-lite

我想将文件附加到CouchbaseLite文档。我怎么能这样做?我没有在官方CBLite网站上找到任何代码示例 - CBLite code Sample。我仍然坚持如何完成它。

在代码中执行此操作的一种方法是:

Document document = mDatabaseLocal.createDocument();
    document.getCurrentRevision().createRevision().setAttachment(name, contentType, contentStream);

但目前尚不清楚。 * 名称应该是什么? * - 这是本地磁盘上附件的绝对路径?

对于contentType:我不知道是否存在任何我可以作为contentType传递的枚举类或常量。

如何将多个文件附加到文档?我是否需要为每个附件创建unsavedRevision?

2 个答案:

答案 0 :(得分:1)

每个附件的名称必须是唯一的,并且不引用本地文件,它指的是您要从文档中获取它的名称。

在这种情况下,您需要在修改前多次拨打createRevision(),然后再setAttachment(),然后再保存。

答案 1 :(得分:0)

您必须将输入流作为附件添加到文档中。

可在此处找到一个示例CouchBase Attachment Example

您必须将每个文件转换为InputStream,然后才能将其设置为文档。

对于转换,您可以使用以下内容:

private InputStream getAsStream(YourData data)
{
    baos = new ByteArrayOutputStream();
    try
    {
        objOstream = new ObjectOutputStream(baos);
        objOstream.writeObject(data);
    } catch (IOException e)
    {
        e.printStackTrace();
    }
    bArray = baos.toByteArray();
    bais = new ByteArrayInputStream(bArray);
    return bais;
}

在此示例中,YourData可以是每个对象或您自己的某些对象类型。 希望这个解释能帮到你。