0

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

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

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

但这并不清楚。*名字应该是什么?* - 它是本地磁盘上附件的绝对路径?

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

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

4

2 回答 2

1

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

在这种情况下,您将调用createRevision()一次,然后setAttachment()多次调用修订,然后再保存它。

于 2014-03-19T18:11:30.910 回答
0

您必须将输入流作为文档的附件。

可以在此处找到示例 CouchBase 附件示例

您必须将每个文件转换为 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 可以是每个对象或您自己的一些对象类型。希望这个解释对你有所帮助。

于 2016-10-04T08:04:14.140 回答